Controller 基本概念

1. 什麼是 Controller


2. Pod 和 Controller 的關係


3. Deployment 的應用場景

應用場景:


以下是圖片中的文字辨識及繁體中文翻譯:


以下是圖片中的文字辨識及繁體中文翻譯:


4. 使用 Deployment 部署應用(YAML)

spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web

說明:

此 YAML 文件表示使用 Deployment 部署一個副本的應用,並將其標籤設置為 app: web,以便進行管理和選擇。


5. 應用升級回滾和彈性伸縮

應用升級

[root@k8smaster ~]# kubectl set image deployment web nginx=nginx:1.15
deployment.apps/web image updated

查看升級狀態

[root@k8smaster ~]# kubectl rollout status deployment web
deployment "web" successfully rolled out

查看升級版本

[root@k8smaster ~]# kubectl rollout history deployment web
deployment.apps/web
REVISION  CHANGE-CAUSE
1         <none>
2         <none>

回滾到上一個版本

[root@k8smaster ~]# kubectl rollout undo deployment web
deployment.apps/web rolled back
[root@k8smaster ~]# kubectl rollout status deployment web
Waiting for deployment "web" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "web" rollout to finish: 1 old replicas are pending termination...
deployment "web" successfully rolled out

回滾到指定的版本

[root@k8smaster ~]# kubectl rollout undo deployment web --to-revision=2
deployment.apps/web rolled back
[root@k8smaster ~]# kubectl rollout status deployment web
Waiting for deployment "web" rollout to finish: 1 out of 2 new replicas have been updated...
Waiting for deployment "web" rollout to finish: 1 old replicas are pending termination...
deployment "web" successfully rolled out

說明:

以下是圖片中的文字辨識及繁體中文翻譯:


彈性伸縮

[root@k8smaster ~]# kubectl scale deployment web --replicas=10
deployment.apps/web scaled

說明:

此操作用於根據業務需求動態調整應用的容器數量,實現資源的彈性管理。

 


修訂版本 #1
由 treeman 建立於 13 @ 2025 18:10:37
由 treeman 更新於 13 @ 2025 18:15:39