本文首發於我的公眾號 Linux雲計算網絡(id: cloud_dev),專注於干貨分享,號內有 10T 書籍和視頻資源,后台回復「1024」即可領取,歡迎大家關注,二維碼文末可以掃。
Hi,大家好,歡迎大家和我一起學 K8S,這是系列第 11 篇。
資源的伸縮在雲計算環境中是至關重要的,雲計算的動機就是企圖提高資源的利用率,在用戶請求高峰期的時候能夠對資源進行橫向擴容,反之,當用戶請求回落低谷的時候,能夠及時縮減資源,避免資源的浪費。
這就像雙十一的時候,隨着用戶不斷地涌入,阿里后台需要不斷調配更多的資源來支撐用戶大量的請求,當過了雙十一當天,再慢慢縮減資源的使用。
Kubernetes 作為一個集群管理系統,提供了兩種資源伸縮的方式:手動和自動。本文先來看手動方式。
Kubernetes 的資源伸縮本質上指的是 Pod 的擴容和縮容(scale up/down),也就是增加或減少 Pod 的副本數。
手動的方式是使用 kubectl scale
命令手動進行,或者基於 YAML 配置來實現。
首先,定義一個 nginx-deployment.yaml
配置文件:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: web_server
spec:
containers:
- name: nginx
image: nginx:1.12.1
其中定義了 3 個副本,執行 kubectl create -f nginx-deployment.yaml
創建 Pod。
如果現在遇到高峰請求,我們急需進行擴容,執行
kubectl scale deployment nginx-deployment --replicas 5
將 Pod 擴增到 5 個。
其中,用 --replicas
來指示增縮的數量,對於縮容,將 --replicas
設置為比當前 Pod 副本數量更小的數字即可,比如縮容到 2 個如下:
可以看到,Pod 銷毀會經歷一個 Terminating
的過程,最終 3 個副本被刪除,只保留了 2 個副本。
以上是通過命令的形式來實現手動的擴容和縮容,我們也可以修改 YAML 配置文件中的 replicas
來實現,只要修改完之后執行 kubectl apply
即可。
OK,本文到此為止,下文我們再來 Pod 伸縮的另一種方式——自動擴容和縮容。
我的公眾號 「Linux雲計算網絡」(id: cloud_dev) ,號內有 10T 書籍和視頻資源,后台回復 「1024」 即可領取,分享的內容包括但不限於 Linux、網絡、雲計算虛擬化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++編程技術等內容,歡迎大家關注。