k8s的Pod控制器

网友投稿 240 2022-09-12

k8s的Pod控制器

pod的配置清单常见选项: 1 apiVersion,kind,metadata,spec,status(只读) 2 spec: 3 containers: 4 nodeSelector: 5 nodeName: 6 restartPolicy: 7 Always,Never, OnFailure 8 containers: 9 name 10 image 11 imagePullPolicy: Always,Never,IfNotPresent 12 ports: 13 name: 14 containerPort 15 livenessProbe 16 readinessProbe 17 lifecycle 18 ExecAction: exec 19 TCPSocketAction: tcpSocket 20 HTTPGetAction:httpGet pod控制器:    ReplicaSet:通常管理无状态pod,带用户创建指定数量的pod副本,并确保pod副本一直处于满足用户期望数量的状态。 多退少补,并且支持扩缩容        ReplicaSet:常用的3个组件;1,用户期望的副本数。2,标签选择器,以便选择自己管控的pod副本。3,pod资源模板,通过标签选择器选定的pod副本数少于用户所期望,则引用pod的资源模板来创建。    Deployment:Deployment-->ReplicaSet-->pod    DaemonSet:可以保证每一个node节点上只运行指定的某1个pod,例如:日志收集器,filebeat,没必要运行多个agant副本。通常运行一些系统级的pod任务。    Job:临时一次性作业,可以用户指定的数量启动指定数量的pod副本,pod是否重启取决于job任务是否完成    Cronjob:周期性计划作业    StartfulSet:有状态的任务,通常用来做存储。极其困难的。    TPR:Third Party Resources,1.2+,1.7    CDR:Custom Defined Resources,1.8+kubectl explain deploy.spec.strategy.rollingUpdate.maxSurge  :用来滚动更新,更新过程中最多可以超出默认副本数的几个 kubectl explain deploy.spec.strategy.rollingUpdate.maxUnavailable :最多可以几个不可用kubectl explain deploy.spec.revisionHistoryLimit :我们再更新后,最多保留多少个历史版本。deployment会自动创建replicaSet,replicaSet创建poddeployment的升级:   1.直接修改deployment的yaml文件,然后apply   2.使用kubectl patch deploy/myapp-deploy -p '{""}' json格式给yaml文件打补丁。   3.使用kubectl edit deploy/myapp-deploy   4.kubectl set image deploy/myapp-deploy myapp=ikubernetes/myapp:v3 && kubectl rollout pause deploy/myapp-deploy   使用kubectl get pods -w可以监视过程   4.上面是金丝雀发布,测试可以的话可以继续更新:kubectl rollout resume deploy/myapp-deploy  使用:kubectl rollout status deploy/myapp-deploy 也可以监控更新过程   5.kubectl rollout undo deploy/myapp-deploy可以回滚到上个版本。例:kubectl patch deploy/myapp-deploy -p '{"spec":{"replicas":5}}'kubectl patch deploy/myapp-deploy -p '{"spec":{"strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}}}'deployment的yaml文件例子: 1 apiVersion: apps/v1 2 kind: Deployment 3 metadata: 4 name: myapp-deploy 5 namespace: default 6 spec: 7 replicas: 3 8 selector: 9 matchLabels: 10 app: myapp 11 release: canary 12 template: 13 metadata: 14 labels: 15 app: myapp 16 release: canary 17 spec: 18 containers: 19 - name: myapp 20 image: ikubernetes/myapp:v2 21 ports: 22 - name: http 23 containerPort: 80

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:k8s的pod生命周期
下一篇:“芯”荒下的车企:停产、减产,成立芯片应对小组,锁定长期订单!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~