k8s滚动升级_k8s deployment 滚动更新
正常來說 k8s 的 deployment 在更新時(shí)默認(rèn)就會進(jìn)行滾動的升級
但是實(shí)際操作中會發(fā)現(xiàn),滾動更新過程中應(yīng)用還是會“掛掉”一會兒,大概會有幾秒鐘網(wǎng)頁訪問 502。
究其原因應(yīng)該是容器啟動后,到應(yīng)用真正工作起來,中間會有一段時(shí)間,比如在 runserver 前需要進(jìn)行一下 migrate 等操作,這段時(shí)間應(yīng)用是無法正常訪問的,但 k8s 卻認(rèn)為應(yīng)用是正常就緒狀態(tài)。
解決方式是設(shè)置一個(gè)合理的 minReadySeconds 值,這個(gè)值默認(rèn)是 0
參考如下:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: webapp
labels:
app: webapp
spec:
replicas: 1
minReadySeconds: 10 # 這里需要估一個(gè)比較合理的值,從容器啟動到應(yīng)用正常提供服務(wù)
strategy: # k8s 默認(rèn)的 strategy 就是 RollingUpdate, 這里寫明出來可以調(diào)節(jié)細(xì)節(jié)參數(shù)
type: RollingUpdate
rollingUpdate:
maxSurge: 1 # 更新時(shí)允許最大激增的容器數(shù),默認(rèn) replicas 的 1/4 向上取整
maxUnavailable: 0 # 更新時(shí)允許最大 unavailable 容器數(shù),默認(rèn) replicas 的 1/4 向下取整
selector:
matchLabels:
app: webapp
template:
metadata:
name: webapp
labels:
app: webapp
spec:
containers:
- name: heyshop-app-combo-backend
image: django-app-image:latest
imagePullPolicy: Always
command:
- bash
args:
- "-c"
- "python manage.py migrate; gunicorn run.wsgi; "
總結(jié)
以上是生活随笔為你收集整理的k8s滚动升级_k8s deployment 滚动更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7如何系统恢复
- 下一篇: Excel表格中的切片器功能怎么使用