1. 程式人生 > >Kubernetes資源擴容、專案釋出策略

Kubernetes資源擴容、專案釋出策略

Master擴容

100臺node,2臺master足夠了

這個在叢集中講過,可以參考之前的

Node擴容

這個在叢集中講過,可以參考之前的

Pod 擴容

以下是手動擴容為5個
kubectl scale --replicas=5 deployment php-demo -n test
Kubernetes資源擴容、專案釋出策略

以下是手動縮容為3個
kubectl scale --replicas=3 deployment php-demo -n test

自動擴容還得在研究

專案釋出策略

藍綠髮布
現在我們公司用的就是藍綠髮布策略
A組 預釋出環境 192.168.1.100 192.168.1.101
B組 生成環境 192.168.1.102
nginx 負載均衡 通過upstream 將192.168.1.100 192.168.1.101 192.168.1.102 都加入進來

釋出時,將B組上線(從upstream剔除A組的伺服器),更新A組的程式碼,等待A組程式碼更新完成,將A組更新上線,B組下線,更新B組的,等待B組更新完成,
再將A組,B組一起都上線,我們公司通過shell指令碼管理的

特點:
• 策略簡單
• 升級/回滾速度快
• 使用者無感知,平滑過渡

缺點:
• 需要兩倍以上伺服器資源
• 比如當A組或者B組上線任意一臺上線後能否滿足併發

灰度釋出
A組 192.168.1.100
B組 192.168.1.101
C組 192.168.1.102

配置:nginx.conf 判斷:遠端地址=公司的公網IP時,就需要轉發到C組上
釋出前:先將C組更新程式碼,因為是公司的網路可以訪問到最新的程式碼,先讓其測試驗證(此時外面的使用者訪問的還是舊的程式碼,服務並沒有停止),沒問題後,則釋出到A組,B組,讓所有使用者都能訪問最新程式碼

滾動釋出
滾動釋出:每次只升級一個或多個服務,升
級完成後加入生產環境,不斷執行這個過程,
直到叢集中的全部舊版升級新版本。
特點:
• 使用者無感知,平滑過渡
缺點:
• 部署週期長
• 釋出策略較複雜
• 不易回滾

Kubernetes中的滾動更新

deployment 控制器預設就是滾動更新

若是有3個pod,若升級第一個pod沒問題的話,就升級第二個,第二個沒有問題就升級第三個

通過rs屬性來操作:
Kubernetes資源擴容、專案釋出策略