12.云原生之kubesphere中应用部署方式

云原生专栏大纲

文章目录

    • k8s中应用部署
      • Kubernetes常用命令
    • kubesphere中可视化部署应用
      • 创建工作负载
      • 服务暴露
    • helm部署应用
      • helm命令行部署应用
      • kubesphere中使用应用仓库

k8s中应用部署

在k8s中要想部署应用,需要编写各种yaml文件,一旦应用依赖比较复杂对运维人员极其不友好,对开发人员入门操作门槛较高。k8s有几种常见的应用部署方式,包括:

  1. Deployment(部署):Deployment是Kubernetes中最常用的应用部署方式之一。它定义了应用程序的副本数量、容器镜像、环境变量等,并确保指定数量的Pod副本在集群中运行。Deployment还支持滚动升级和回滚操作,以实现无宕机的应用程序更新。
  2. StatefulSet(有状态集):StatefulSet用于部署有状态的应用程序,如数据库。与Deployment不同,StatefulSet为每个Pod分配一个唯一的标识符,这样可以确保每个Pod具有稳定的网络标识和存储。StatefulSet还支持有序部署和扩展,确保应用程序的有状态特性得到维护。
  3. DaemonSet(守护进程集):DaemonSet用于在集群中的每个节点上运行一个Pod副本。它通常用于部署一些系统级别的服务,如日志收集器、监控代理等。当集群的节点发生变化时,DaemonSet会自动调整Pod的数量和分布,以保持每个节点上都有一个Pod副本。
  4. Job和CronJob(作业和定时作业):Job用于运行一次性任务,如批处理作业。CronJob是基于时间调度的Job,可定期运行任务。这些部署方式允许在需要时运行任务,并在任务完成后终止或定期重复运行任务。
  5. Pod(容器组):虽然直接使用Pod来部署应用程序不太常见,但它是Kubernetes中最基本的部署单元。Pod可以包含一个或多个容器,并共享相同的网络和存储资源。在某些情况下,可以直接使用Pod来部署应用程序,但这需要手动管理Pod的生命周期和扩展性。

Kubernetes常用命令

命令描述
kubectl get pods获取所有Pod的列表
kubectl get deployments获取所有Deployment的列表
kubectl get services获取所有Service的列表
kubectl get nodes获取所有节点的列表
kubectl create -f 使用YAML或JSON文件创建资源
kubectl apply -f 使用YAML或JSON文件创建或更新资源
kubectl delete <resource_type> <resource_name>删除指定类型的资源
kubectl describe <resource_type> <resource_name>显示指定类型资源的详细信息
kubectl logs <pod_name>获取指定Pod的日志
kubectl exec -it <pod_name> <container_name> – 在Pod中的容器上执行命令
kubectl port-forward <pod_name> <local_port>:<pod_port>将本地端口转发到Pod的端口
kubectl scale <resource_type> <resource_name> --replicas=<replica_count>扩展或缩小指定资源的副本数量
kubectl rollout status <resource_type> <resource_name>检查滚动升级的状态
kubectl rollout history <resource_type> <resource_name>查看滚动升级的历史记录
kubectl apply -f --dry-run=client -o yaml检查资源配置文件的语法错误和效果,但不实际创建资源
kubectl get events获取集群中的事件列表
kubectl get namespaces获取所有命名空间的列表
kubectl config get-contexts获取当前配置的上下文列表
kubectl config use-context <context_name>切换到指定的上下文

这些命令可以帮助您管理和操作Kubernetes集群中的各种资源。请根据您的需求和环境进行相应的调整和使用。

kubesphere中可视化部署应用

kubesphere将k8s中资源进行可视化操作,简化了部署难度,如将上述Deployment、Job等资源可视化为如下截图:
image.png
image.png

创建工作负载

可在工作负载(Deployment)中部署应用:

  1. 工作负载创建

image.png

  1. 填写名称

image.png

  1. 填写容器镜像

image.png

  1. 设置容器的资源限制与资源预留

image.png

  1. 容器端口设置

image.png

  1. 设置环境变量

环境变量各有差异取决于部署什么应用,一般可以在https://hub.docker.com/搜索查询

image.png

  1. 挂载数据文件

image.png
选择持久卷声明:
image.png
image.png

  1. 挂载配置文件

创建字典或保密字段:
image.png
选择字典或保密字段:
image.png
配置挂载路径:
image.png
下一步,创建工作负载

服务暴露

  1. 创建服务指定工作负载

image.png
image.png

  1. 选择工作负载

image.png

  1. 填写容器和服务端口

image.png

  1. 下一步选择外部访问方式

image.png

  1. 查看创建情况

此时可以使用k8s集群宿主机ip+暴露端口访问mysql
image.png

helm部署应用

上述部署方式适合单应用部署,一旦应用依赖比较复杂,如部署nacos应用可能需要使用到mysql,就需先部署mysql,在部署nacos。而helm将这些复杂的操作进行了封装提供values.yaml文件对可变动配置进行暴露。在kubesphere中使用helm部署应用可通过原始命令行操作,也可以通过应用仓库操作,应用仓库是helm的可视化操作。

helm命令行部署应用

一般步骤,具体可参考表格命令

  1. 添加一个 Helm 仓库
  2. 安装一个 Helm 包
命令描述示例
helm install安装一个 Helm 包helm install my-release stable/mysql
helm upgrade升级已安装的 Helm 包helm upgrade my-release stable/mysql
helm uninstall卸载一个已安装的 Helm 包helm uninstall my-release
helm list列出已安装的 Helm 包helm list
helm status显示已安装的 Helm 包的状态helm status my-release
helm rollback回滚到先前的 Helm 包版本helm rollback my-release 1
helm search搜索可用的 Helm 包helm search repo mysql
helm repo add添加一个 Helm 仓库helm repo add stable https://charts.helm.sh/stable
helm repo update更新已添加的 Helm 仓库helm repo update
helm repo list列出已添加的 Helm 仓库helm repo list
helm dependency update更新 Helm 依赖helm dependency update my-chart
helm lint检查 Helm Chart 的语法和最佳实践helm lint my-chart
helm template生成 Helm Chart 的模板文件helm template my-chart
helm history显示已安装 Helm 包的历史版本helm history my-release
helm plugin install安装 Helm 插件helm plugin install https://example.com/helm-plugin.tar.gz
helm plugin list列出已安装的 Helm 插件helm plugin list
helm plugin uninstall卸载已安装的 Helm 插件helm plugin uninstall my-plugin
helm env显示 Helm 的环境变量信息helm env

kubesphere中使用应用仓库

  1. 创建企业空间

image.png

  1. 进入企业空间添加应用仓库

image.png

  1. 创建项目

image.png

  1. 进入项目部署应用

image.png

  1. 选择应用仓库

image.png
image.png image.png

  1. 点击nacos,选择nacos版本,点击下一步

image.png

  1. 修改values.yaml
mysql:
  enabled: true # 是否启用内部mysql,false使用外部需配置external
  external:
    mysqlMasterHost: "mysql_master_host"
    mysqlDatabase: "nacos"
    mysqlMasterPort: "3306"
    mysqlMasterUser: "nacos"
    mysqlMasterPassword: "nacos"
    mysqlSlaveHost: "mysql_slave_host"
    mysqlSlavePort: "3306"

  architecture: replication
  auth: #  修改nacos
    rootPassword: "nacos"
    database: "nacos"
    username: "nacos"
    password: "nacos"
    replicationUser: "replicator"
    replicationPassword: "replicator"
  1. 查看应用列表

image.png

  1. 点击应用查看部署详情

image.png

  1. 服务暴露情况

image.png

  1. 访问测试

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/325748.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

36V/1.6A两通道H桥驱动芯片-SS8812T可替代DRV8812

由工采网代理的SS8812T是一款双通道H桥电流控制电机驱动器&#xff1b;每个 H 桥可提供输出电流 1.6A&#xff0c;可驱动两个刷式直流电机&#xff0c;或者一个双极步进电机&#xff0c;或者螺线管或者其它感性负载&#xff1b;双极步进电机可以以整步、2 细分、4 细分运行&…

yarn包管理器在添加、更新、删除模块时,在项目中是如何体现的

技术很久不用&#xff0c;就变得生疏起来。对npm深受其害&#xff0c;决定对yarn再整理一遍。 yarn包管理器 介绍安装yarn帮助信息最常用命令 介绍 yarn官网&#xff1a;https://yarn.bootcss.com&#xff0c;学任何技术的最新知识&#xff0c;都可以通过其对应的网站了解。无…

Docker部署Jira、Confluence、Bitbucket、Bamboo、Crowd,Atlassian全家桶

文章目录 省流&#xff1a;注意&#xff1a;解决方案&#xff1a; 1.docker-compose文件2.其他服务都正常启动&#xff0c;唯独Bitbucket不行。日志错误刚启动时候重启后查询分析原因再针对第一点排查看样子是安装的bitbucket和系统环境有冲突问题&#xff1f; 结论&#xff1a…

晶圆表面缺陷检测现状概述

背景&#xff1a; 晶圆表面缺陷检测设备主要检测晶圆外观呈现出来的缺陷&#xff0c;损伤、毛刺等缺陷&#xff0c;主要设备供应商KLA&#xff0c;AMAT&#xff0c;日立等&#xff0c;其中KLA在晶圆表面检测设备占有市场52%左右。 检测设备分类&#xff1a; 电子束设备和光学…

MAC iterm 显示git分支名

要在Mac上的iTerm中显示Git分支名&#xff0c;您需要使用一个名为“Oh My Zsh”的插件。Oh My Zsh是一个流行的Zsh框架&#xff0c;它提供了许多有用的功能和插件&#xff0c;包括在终端中显示Git分支名。 以下是在iTerm中显示Git分支名的步骤&#xff1a; 1、安装Oh My Zsh&…

系统架构11 - 数据库基础(上)

数据库基础 数据库基本概念概述三级模式、两级映像概念模式外模式内模式二级映像逻辑独立性物理独立性 数据库设计需求分析概念结构设计逻辑结构设计物理设计数据库实施阶段据库运行和维护阶段 数据模型E-R模型关系模型模型转换E-R图的联系 关系代数 数据库基本概念 概述 数据…

可持续技术:2024 年技术趋势的绿色创新

随着我们步入2024年&#xff0c;对可持续技术解决方案的关注从未如此强烈。从可再生能源到环保小工具&#xff0c;科技行业正朝着更环保、更可持续的未来大步迈进。 在快速发展的技术领域&#xff0c;创新是推动我们走向可持续未来的动力。随着我们步入2024年&#xff0c;对可持…

高效工作法:占位图片生成工具助力项目快速迭代

在现代设计和开发项目中&#xff0c;图片资源的重要性不言而喻。然而&#xff0c;项目中经常会遇到寻找合适图片、调整图片尺寸和格式等问题&#xff0c;这些问题不仅耗时耗力&#xff0c;还可能影响到项目的进度和质量。此时&#xff0c;占位图片生成工具应运而生&#xff0c;…

【开源】基于JAVA语言的网上药店系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药品档案模块2.4 药品订单模块2.5 药品收藏模块2.6 药品资讯模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 药品表3.2.3 药品订单表3.2.4 药品收藏表3.2.5 药品留言表…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-9 可观测性与分离原理

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-9 可观测性与分离原理

安卓之图表库的应用场景、技术实现及其优劣分析

一、引言 在移动应用开发中&#xff0c;数据可视化对于提供直观信息、帮助用户理解数据至关重要。安卓平台上的图表库为开发者提供了一系列工具和组件&#xff0c;使他们能够轻松地创建各种类型的图表&#xff0c;如线型图、柱状图、蜡烛图、气泡图、饼状图、雷达图以及散点图等…

适配器模式介绍

目录 一、适配器模式介绍 1.1 适配器模式定义 1.2 适配器模式原理 1.2.1 适配器模式类图 1.2.2 模式角色说明 二、适配器模式的应用 2.1 类适配器模式 2.1.1 需求说明 2.1.2 需求实现 2.1.2.1 类图 2.1.2.2 具体实现 2.1.2.2.1 SDCard接口 2.1.2.2.2 SDCardImpl实现…

婴儿洗衣机哪款性价比高?希亦、RUUFFY、觉飞全维度测评对比

当婴儿的到来&#xff0c;确实会给家庭带来许多变化&#xff0c;就好比如对于宝宝相关衣物的清洗需求。对于新生儿及婴幼儿的衣服&#xff0c;一般都要给予特殊的照顾与清洗&#xff0c;以保证不含细菌及过敏原。尤其是刚刚出生的婴儿&#xff0c;这时候宝宝们的皮肤很是幼嫩。…

【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

文章目录 &#x1f38d;序言&#x1f333;加法计算器&#x1f6a9;准备工作&#x1f6a9;约定前后端交互接⼝&#x1f332;后端服务器代码的书写 &#x1f334;用户登录&#x1f6a9;效果展示&#x1f6a9;准备工作&#x1f6a9;约定前后端交互接⼝&#x1f388;需求分析&#…

spring boot学习第八篇:kafka

目录 1、安装kafka 1.1确认jdk是否安装OK 1.2下载kafka 1.3安装kafka 1.4验证kafka 2、连接kafka 3、在java中操作kafka 1、安装kafka 1.1确认jdk是否安装Ok java -version 1.2下载kafka wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-…

K8S之configMapsecret

job 第一个是初始化尝试&#xff0c;初始化尝试失败之后&#xff0c;会再重试两次。 配置资源管理: Secret Configmap*:1.2加入的新特征 1.18 Secret: 保存密码&#xff0c;token,敏感的k8s资源 这类数据可以存放在镜像当中&#xff0c;但是防止secret当中可以更方便的控…

爬虫—根据股票代码实时抓取股票信息

爬虫—根据股票代码实时抓取股票信息 数据来源网址&#xff1a;https://xueqiu.com 目标&#xff1a;根据输入的股票代码和证券所&#xff0c;实时抓取股票的交易信息 源码如下&#xff1a; import requests from lxml import etree# 本案例数据需要账号登录之后才能获取&a…

MSSQL-识别扩展extended event(扩展事件)中的时间单位

经常使用sqlserver extended event(扩展事件)&#xff0c;但是总是忘记扩展事件使用的时间单位&#xff0c;不确定它们是 秒、毫秒、还是微秒&#xff1f; 以下下代码能够从 相关DMV中提取description字段内容来识别时间单位&#xff1a; SELECT [p].[name] [package_name],[o…

Androidmanifest文件加固和对抗

前言 恶意软件为了不让我们很容易反编译一个apk&#xff0c;会对androidmanifest文件进行魔改加固&#xff0c;本文探索androidmanifest加固的常见手法以及对抗方法。这里提供一个恶意样本的androidmanifest.xml文件&#xff0c;我们学完之后可以动手实践。 1、Androidmanife…

加密经济学:Web3时代的新经济模型

随着Web3技术的迅猛发展&#xff0c;我们正迈入一个全新的数字经济时代。加密经济学作为这一时代的核心&#xff0c;不仅在数字货币领域崭露头角&#xff0c;更是重新定义了传统经济模型&#xff0c;为我们开启了一个充满创新和机遇的新纪元。 1. 去中心化的经济体系 Web3时代…