首页 > 其他分享 >Deployment:让应用永不宕机

Deployment:让应用永不宕机

时间:2023-07-15 20:32:21浏览次数:38  
标签:Kubernetes 永不 labels selector YAML 宕机 Deployment Pod

“Deployment”,顾名思义,它是专门用来部署应用程序的,能够让应用永不宕机,多用来发布无状态的应用,是 Kubernetes 里最常用也是最有用的一个对象。

Deployment 的关键字段:先看 replicas 字段。它的含义比较简单明了,就是“副本数量”的意思,也就是说,指定要在 Kubernetes 集群里运行多少个 Pod 实例。

另一个关键字段 selector,它的作用是“筛选”出要被 Deployment 管理的 Pod 对象,下属字段“matchLabels”定义了 Pod 对象应该携带的 label,它必须和“template”里 Pod 定义的“labels”完全相同,否则 Deployment 就会找不到要控制的 Pod 对象,apiserver 也会告诉你 YAML 格式校验错误无法创建。

这个 selector 字段的用法初看起来好像是有点多余,为了保证 Deployment 成功创建,我们必须在 YAML 里把 label 重复写两次:一次是在“selector.matchLabels”,另一次是在“template.matadata”。

Kubernetes 采用的是这种“贴标签”的方式,通过在 API 对象的“metadata”元信息里加各种标签(labels),我们就可以使用类似关系数据库里查询语句的方式,筛选出具有特定标识的那些对象。通过标签这种设计,Kubernetes 就解除了 Deployment 和模板里 Pod 的强绑定,把组合关系变成了“弱引用”。

用不同的颜色来区分 Deployment YAML 里的字段,并且用虚线特别标记了 matchLabels 和 labels 之间的联系。

Deployment:让应用永不宕机_Deployment

在 Deployment 部署成功之后,你还可以随时调整 Pod 的数量,实现所谓的“应用伸缩”。这项工作在 Kubernetes 出现之前对于运维来说是一件很困难的事情,而现在由于有了 Deployment 就变得轻而易举了。

kubectl scale 是专门用于实现“扩容”和“缩容”的命令,你只要用参数 --replicas 指定需要的副本数量,Kubernetes 就会自动增加或者删除 Pod,让最终的 Pod 数量达到“期望状态”。


标签:Kubernetes,永不,labels,selector,YAML,宕机,Deployment,Pod
From: https://blog.51cto.com/key3feng/6733284

相关文章

  • Linux设置用户密码过期时间或永不过期
    1.查看用户密码有效期:chage-lusername2.修改密码到期时间通过参数-M设置账户密码的到期时间语法:chage -M number-of-days username(扩展:-M 指定的是密码有效的最大天数-m 指定的是密码有效的最小天数。不建议用-m,使用默认最小天数0即可)chage-M90us......
  • 永不妥协
    1、相信梦想是价值的源泉,相信眼光决定未来一切,相信成功的信念比成功本身更重要,相信人生有挫折但没有失败,相信生命质量来自决不妥协的人生态度。2、不是因为有些事难以做到,我们才失去信心,而是因为我们缺少信心,才使这些事情难以做到。相信自己,你是世界上的唯一!3、请记得,无论历经多少风......
  • kubesphere 重新部署deployment的页面实现
    找到工作负载的某一个,点击:部署那边点击重新创建即可 ......
  • Kubernetes Deployment更新容器镜像的两种常见方式
    KubernetesDeployment是一种Kubernetes资源对象,用于定义和管理容器化应用程序的部署。在Kubernetes集群中,可以使用Deployment来创建和管理Pod,并确保Pod的副本数始终保持在指定的数量。当需要更新容器镜像时,可以使用以下两种方式来更新KubernetesDeployment中的容器镜像。方式一......
  • Kubernetes应用编排与管理 —— Deployment升级策略
    1、Deployment概述Deployment是Kubernetes控制器的一种高级别实现,它构建于ReplicaSet控制器之上,它可用于为Pod和ReplicaSet资源提供声明式更新,并能够以自动方式实现跨多个ReplicaSet对象的滚动更新功能。相比较来说,Pod和ReplicaSet是较低级别的资源,以至于很少......
  • k8s Deployment 金丝雀发布
    创建应用depoly-demoapp-v10.yamlapiVersion:v1kind:Namespacemetadata:name:demoapp---apiVersion:apps/v1kind:Deploymentmetadata:name:demoapp-deploymentnamespace:demoappspec:replicas:3selector:matchLabels:app:demoapp......
  • 禁用 Windows Server 2022 密码过期策略的批处理命令 密码永不过期
    禁用WindowsServer2022密码过期策略的批处理命令:打开记事本,将以下命令复制粘贴到记事本中:wmicpathWin32_UserAccountwhere"LocalAccount=TrueANDPasswordExpires=True"setPasswordExpires=False将文件保存为后缀名为.bat的批处理文件,比如"disable_password_expi......
  • python nohup 远程运行不宕机方法
    远程运行最怕断电,训练了几个小时的数据说没就没,或者停止运行。用nohup记录代码的输出,还可以不受断电的影响。方法1.用nohup运行一个python文件nohuppython-umain.py>nohup.out2>&1&除了main.py换成自己的文件名,nohup.out也可以改为其他名字,nohup1.out等。其余照搬。不......
  • Kubernetes中Deployment、ReplicaSet、Pod、Service的概念及关系
    Kubernetes中Deployment、ReplicaSet、Pod、Service的概念及关系Pod:k8s管理的最小单位,包括一个或多个容器,是提供实际业务服务的组件。ReplicaSet:是Pod的管理控制组件,监控Pod的健康状况,保障Pod按照用户的期望去运行。rs是ReplicationController组件的升级版,增加了标签选择器的范......
  • 1_Setting Up an Ubuntu 20.04 server for deployment
     原文:https://www.codewithharry.com/blogpost/setup-ubuntu-20-04-server/  SettingUpanUbuntu20.04serverfordeploymentWhenyoufirstcreateaserverfromanyproviderlikeLinode,DigitalOcean,etc.,youwillhavetosecureitbyexecutingseveral......