本文首發於個人公衆號 Linux雲計算網絡(id: cloud_dev),專一於乾貨分享,號內有 10T 書籍和視頻資源,後臺回覆「1024」便可領取,歡迎你們關注,二維碼文末能夠掃。nginx
Hi,你們好,歡迎你們和我一塊兒學 K8S,這是系列第 11 篇。web
資源的伸縮在雲計算環境中是相當重要的,雲計算的動機就是企圖提升資源的利用率,在用戶請求高峯期的時候可以對資源進行橫向擴容,反之,當用戶請求回落低谷的時候,可以及時縮減資源,避免資源的浪費。編程
這就像雙十一的時候,隨着用戶不斷地涌入,阿里後臺須要不斷調配更多的資源來支撐用戶大量的請求,當過了雙十一當天,再慢慢縮減資源的使用。api
Kubernetes 做爲一個集羣管理系統,提供了兩種資源伸縮的方式:手動和自動。本文先來看手動方式。網絡
Kubernetes 的資源伸縮本質上指的是 Pod 的擴容和縮容(scale up/down),也就是增長或減小 Pod 的副本數。app
手動的方式是使用 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。code
若是如今遇到高峯請求,咱們急需進行擴容,執行視頻
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++編程技術等內容,歡迎你們關注。