背景:
对于已经发布的服务。如何做到在线更新呢?
总结有这么几种办法:
kubectl annotate, kubectl edit, kubectl replace, kubectl scale, 和 kubectl apply。
本文介绍 kubectl patch的办法
比如创建一个如下的pod
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: patch-demo
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: patch-demo-ctr
image: nginx
tolerations:
- effect: NoSchedule
key: dedicated
value: test-team
之后我们要修改镜像内容 ,使用patch怎么办呢?
1.先创建一个patch-file-containers.yaml
spec:
template:
spec:
containers:
- name: patch-demo-ctr-2
image: redis
2.之后命令行更新pod配置
kubectl patch deployment patch-demo --patch “$(cat patch-file-containers.yaml)”
很多k8s管理平台的 在线修改yaml 其实使用的是 kubectl patch 增量修改pod配置
本文介绍使用kubectl patch实现Kubernetes中Pod配置的在线更新方法。通过创建patch文件并应用到已部署的服务,可以实现对镜像等配置的修改,避免服务中断。
88

被折叠的 条评论
为什么被折叠?



