我正在kubectl apply更新我的Kubernetes容器:
kubectl apply
kubectl apply -f /my-app/service.yaml kubectl apply -f /my-app/deployment.yaml
以下是我的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
以下是我的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%
第一次可以正常运行,但是在随后的运行中,我的广告连播没有得到更新。
我已经在https://github.com/kubernetes/kubernetes/issues/33664上阅读了建议的解决方法,该方法是:
kubectl patch deployment my-app -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
我能够运行上面的命令,但是它没有为我解决问题。
我知道可以通过手动将image标签从“ latest”更改为另一个标签来触发pod更新,但是我想确保无需检查Docker Hub就能获得最新的image。
任何帮助将不胜感激。
原来我误解了我从链接中给出的解决方法命令。
我以为这是一次配置我的部署的命令,它将将来的所有kubectl apply命令都视为更新我的Pod的触发器。
实际上,每次我要更新Pod时,我实际上只需要运行命令:
非常感谢大家的帮助!