我正在运行这个命令:
kubectl set image deployment/www-deployment VERSION_www=newImage
工作正常。但是有一个10秒的窗口,网站是503,我是个完美主义者。
如何配置 kubernetes 在切换入口之前等待图像可用?
我从这里使用 nginx 入口控制器:
gcr.io/google_containers/nginx-ingress-controller:0.8.3
这个用于 Web 服务器的 yaml:
# Service and Deployment
apiVersion: v1
kind: Service
metadata:
name: www-service
spec:
ports:
- name: http-port
port: 80
protocol: TCP
targetPort: http-port
selector:
app: www
sessionAffinity: None
type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: www-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: www
spec:
containers:
- image: myapp/www
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /healthz
port: http-port
name: www
ports:
- containerPort: 80
name: http-port
protocol: TCP
resources:
requests:
cpu: 100m
memory: 100Mi
volumeMounts:
- mountPath: /etc/env-volume
name: config
readOnly: true
imagePullSecrets:
- name: cloud.docker.com-pull
volumes:
- name: config
secret:
defaultMode: 420
items:
- key: www.sh
mode: 256
path: env.sh
secretName: env-secret
Docker 映像基于node.js 服务器映像。
/healthz
是网络服务器中的一个文件,它返回ok
我认为活性探测将确保服务器在切换到新版本之前已启动并准备就绪。
提前致谢!