Deployment介绍
官方介绍
一个 Deployment 为 Pods 和 ReplicaSets提供声明式的更新能力
负责描述 Deployment 中的 目标状态,而 Deployment 控制器(Controller)
以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的ReplicaSet
,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。
而是通过管理ReplicaSet
来间接管理pod,即:deployment
管理ReplicaSet,ReplicaSet管理pod。所以Deployment比ReplicaSet的功能更强大。

一个Deployment产生三个资源:
- Deployment资源所有功能
- ReplicaSet资源的所有功能
- POD资源
Deployment控制RS,RS控制POD副本数
Kubernetes官方强烈建议避免直接使用ReplicaSet,而应该通过Deployment来创建RS和Pod。
Deployment资源清单详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| apiVersion: apps/v1 kind: Deployment metadata: name: namespace: labels: controller: deploy spec: replicas: revisionHistoryLimit: paused: progressDeadlineSeconds: minReadySeconds: 10 strategy: type: RollingUpdates rollingUpdate: maxSurge: maxUnavaliable: selector: matchLabels: app: nginx-pod matchExpressions: - {key: app, operator: In, values: [nginx-pod]} template: metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:1.17.1 ports: - containerPort: 80
|
创建Deployment
下面是 Deployment 示例。其中创建了一个 ReplicaSet
,负责启动三个 nginx
Pods:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
|
Kubernetes运维之容器编排Deployment详解
转载前请阅读本站 版权协议,文章著作权归 王先森 所有,转载请注明出处。