我正在kubectl apply更新我的Kubernetes容器:
kubectl apply -f /my-app/service.yaml
kubectl apply -f /my-app/deployment.yaml
Run Code Online (Sandbox Code Playgroud)
以下是我的service.yaml:
apiVersion: v1
kind: Service
metadata:
name: my-app
labels:
run: my-app
spec:
type: NodePort
selector:
run: my-app
ports:
- protocol: TCP
port: 9000
nodePort: 30769
Run Code Online (Sandbox Code Playgroud)
以下是我的deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
selector:
matchLabels:
run: my-app
replicas: 2
template:
metadata:
labels:
run: my-app
spec:
containers:
- name: my-app
image: dockerhubaccount/my-app-img:latest
ports:
- containerPort: 9000
protocol: TCP
imagePullSecrets:
- name: my-app-img-credentials
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
Run Code Online (Sandbox Code Playgroud)
第一次可以正常运行,但是在随后的运行中,我的广告连播没有得到更新。
我已经在https://github.com/kubernetes/kubernetes/issues/33664上阅读了建议的解决方法,该方法是:
kubectl patch deployment my-app -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
Run Code Online (Sandbox Code Playgroud)
我能够运行上面的命令,但是它没有为我解决问题。
我知道可以通过手动将image标签从“ latest”更改为另一个标签来触发pod更新,但是我想确保无需检查Docker Hub就能获得最新的image。
任何帮助将不胜感激。
rat*_*ath 10
您imagePullPolicy的部署中缺少一个。尝试这个:
containers:
- name: my-app
image: dockerhubaccount/my-app-img:latest
imagePullPolicy: Always
Run Code Online (Sandbox Code Playgroud)
默认策略ifNotPresent就是您的策略不更新的原因。
我将结合链接中的两个注释:
注意:
:latest在生产环境中部署容器时应避免使用该标签,因为跟踪正在运行的镜像版本更加困难,并且更难以正确回滚
注意:底层图像提供者的缓存语义使
imagePullPolicy: Always效率更高。以 Docker 为例,如果镜像已经存在,拉取尝试很快,因为所有镜像层都被缓存,不需要下载镜像
原来我误解了我从链接中给出的解决方法命令。
我认为这是一个一次性命令,它将我的部署配置为将所有未来的kubectl apply命令视为更新我的 pod 的触发器。
实际上,每次我想更新我的 Pod 时,我只需要运行命令:
kubectl patch deployment my-app -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
Run Code Online (Sandbox Code Playgroud)
非常感谢所有帮助过的人!
如果部署规范没有任何变化,则不会为您更新Pod。这是不建议使用的许多原因之一:latest,因为其他答案更加详细。该Deployment控制器非常简单,几乎可以完成所有操作DeepEquals(old.Spec.Template, new.Spec.Template),因此您需要进行一些实际更改,例如通过使用当前日期时间设置标签来进行PATCH调用。
| 归档时间: |
|
| 查看次数: |
2955 次 |
| 最近记录: |