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使用外部需配置externalexternal:mysqlMasterHost: "mysql_master_host"mysqlDatabase: "nacos"mysqlMasterPort: "3306"mysqlMasterUser: "nacos"mysqlMasterPassword: "nacos"mysqlSlaveHost: "mysql_slave_host"mysqlSlavePort: "3306"architecture: replicationauth: #  修改nacosrootPassword: "nacos"database: "nacos"username: "nacos"password: "nacos"replicationUser: "replicator"replicationPassword: "replicator"
  1. 查看应用列表

image.png

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

image.png

  1. 服务暴露情况

image.png

  1. 访问测试

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌

1月11日&#xff0c;由零售圈主办、20零售连锁协会协办、30零售行业媒体支持的中国零售圈大会暨2024未来零售跨年盛典在西安落下帷幕&#xff0c;在这个零售行业盛典中&#xff0c;第七在线凭借其高精尖产品和卓越的服务质量成功入选&#xff0c;并荣获了“百灵奖 Buylink Awar…

关于接口的安全性测试,这方法你学会了吗?

01、接口防刷 1.为什么会有人要刷接口&#xff1f; 牟利&#xff1a;黄牛在 12306 网上抢票再倒卖。 恶意攻击竞争对手&#xff1a;如短信接口被请求一次&#xff0c;会触发几分钱的运营商费用&#xff0c;当量级大了也很可观。 压测&#xff1a;用apache bench 做压力测试…

零基础也能轻松安装Linux系统,快速入门指南!

本章节我们将为大家介绍 Linux 的安装&#xff0c;安装步骤比较繁琐&#xff0c;现在其实云服务器挺普遍的&#xff0c;价格也便宜&#xff0c;如果自己不想搭建&#xff0c;也可以直接买一台学习用用&#xff0c;参考各大云服务器比较。 本章节以 centos6.4 为例。 centos 下…

Springboot智慧校园电子班牌统一管理平台源码

借助AIoT智能物联、云计算技术打造智慧绿色校园&#xff0c;助力实现校园教务管理、教师管理、学籍管理、考勤、信息发布、班级文明建设、校园风采、家校互通等场景功能&#xff0c;打造安全、便捷、绿色的智慧校园。 前后端分离架构 1、使用springbootvue2 2、数据库&#xff…

CAD随机锈坑_中空圆柱试件插件

插件介绍 CAD随机锈坑_中空圆柱试件插件可用于在AutoCAD软件内生成表面存在球形坑洞的中空圆柱体部件。插件在AutoCAD内生成的三维锈坑模型可导入COMSOL、Abaqus、ANSYS等有限元软件内进行仿真模拟&#xff0c;也可用于表面锈坑模型的科研绘图方面。 插件可控制中空圆柱体模…

信息之板:数据看板如何点亮我们的生活

数据看板&#xff0c;作为数据可视化的一种应用形式&#xff0c;已经逐渐渗透到我们的日常生活中&#xff0c;发挥着越来越重要的作用。这种集中呈现和分析信息的工具&#xff0c;不仅在企业管理中大放异彩&#xff0c;更在我们的日常生活中展现出了强大的价值。下面我就以可视…

如何在苹果手机上进行文件管理

摘要 苹果手机没有像安卓系统那样内置文件管理器&#xff0c;但是可以通过使用克魔开发助手来实现强大的文件管理功能。本文介绍了如何使用克魔开发助手在电脑上管理和传输苹果手机的文件。 引言 很多朋友都在使用苹果手机&#xff0c;但是当需要查看手机中的文件时&#xf…

springboot集成shiro+前端vue,前后端分离项目遇到跨域以及sessionid拿不到等问题

近期在写前后端分离的项目&#xff0c;由于前后端分离导致原来使用的shiro配置无法满足现有系统要求。同时在前后端分离项目中存在的一些问题。例如&#xff0c;一些用户信息需要存储在后端方便进行安全性判断&#xff0c;但这些存储在后端的session前端却获取不到&#xff08;…

【使用教程】上位机软件NimStudio之振动抑制

在工业自动化和机械制造领域&#xff0c;振动是一个常见的问题&#xff0c;大家在使用电机时经常会忽视这个问题&#xff0c;但它会影响设备的性能和使用寿命。为了解决这一问题&#xff0c;振动抑制技术得到了广泛应用。 其中&#xff0c;通过上位机软件调节振动抑制的方法因…

两步解决宝塔面板无法访问(无法访问或拒绝链接)

宝塔面板&#xff0c;突然无法进入&#xff0c;显示“IP拒绝链接”。 使用SSH工具登录服务器 /etc/init.d/bt defaultbt default 命令 宝塔获取登录的默认地址、用户名和登录密码&#xff1b; 重启面板服务 sudo /etc/init.d/bt初始化宝塔选项 漏刻有时

Android Traceview 定位卡顿问题

Traceview 是一个 Android 性能分析工具&#xff0c;用于时间性能分析&#xff0c;主要帮助开发者了解应用程序中各个方法的执行时间和调用关系。通过图形化界面查看应用程序的代码执行细节&#xff0c;包括每个方法的调用次数、方法调用的时间消耗、方法调用堆栈等信息。我们可…

什么是CPU异常和中断?

什么是CPU异常和中断&#xff1f; 当你的电脑正在运行一个程序&#xff0c;突然你按下了键盘上的某个键&#xff0c;或者进行的加法运算结果溢出了&#xff0c;这时&#xff0c;CPU需要暂停正在做的事情&#xff0c;先去处理这个突然出现的事件。这些情况就是本文要谈的主题&a…