Deployments 控制器
Deployments 控制器,具体概念请阅读官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
使用Deployments创建POD资源清单
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
| apiVersion: apps/v1 kind: Deployment metadata: name: dp-pod labels: controller: dp spec: replicas: 3 revisionHistoryLimit: 3 paused: false progressDeadlineSeconds: 600 strategy: type: RollingUpdate rollingUpdate: maxSurge: 30% maxUnavailable: 30% 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.14.0 ports: - containerPort: 80
|
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
| apiVersion: apps/v1 kind: Deployment metadata: name: dp-pod labels: controller: dp spec: replicas: 3 revisionHistoryLimit: 3 paused: false progressDeadlineSeconds: 600 strategy: type: RollingUpdate rollingUpdate: maxSurge: 30% maxUnavailable: 30% 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.14.0 ports: - containerPort: 80
|
1 2
| kubectl apply -f dp.yaml
|

1 2
| kubectl get deployments.apps
|

在检查集群中的 Deployment 时,所显示的字段有:
NAME 列出了名字空间中 Deployment 的名称。
READY 显示应用程序的可用的“副本”数。显示的模式是“就绪个数/期望个数”。
UP-TO-DATE 显示为了达到期望状态已经更新的副本数。
AVAILABLE 显示应用可供用户使用的副本数。
AGE 显示应用程序运行的时间。
ReplicaSet 控制器
ReplicaSet 控制器,具体概念请阅读官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/replicaset/
使用ReplicaSet创建POD资源清单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-pod labels: controller: rs spec: replicas: 3 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.14.0 ports: - containerPort: 80
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-pod labels: controller: rs spec: replicas: 3 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.14.0 ports: - containerPort: 80
|
1 2
| kubectl apply -f rs-pod.yaml
|

1 2
| kubectl scale rs rs-pod --replicas=4
|


ReplicaSet 输出中包含以下字段:
NAME 列出名字空间中 ReplicaSet 的名称;
DESIRED 显示应用的期望副本个数,即在创建 Deployment 时所定义的值。 此为期望状态;
CURRENT 显示当前运行状态中的副本个数;
READY 显示应用中有多少副本可以为用户提供服务;
AGE 显示应用已经运行的时间长度。
ReplicaSet 的替代方案
Deployment 是一个可以拥有 ReplicaSet 并使用声明式方式在服务器端完成对 Pod 滚动更新的对象。 尽管 ReplicaSet 可以独立使用,目前它们的主要用途是提供给 Deployment 作为编排 Pod 创建、删除和更新的一种机制。当使用 Deployment 时,你不必关心如何管理它所创建的 ReplicaSet,Deployment 拥有并管理其 ReplicaSet。 因此,建议你在需要 ReplicaSet 时使用 Deployment。
DaemonSet 控制器
DaemonSet 控制器,具体概念请阅读官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/daemonset/
使用DaemonSet创建POD资源清单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| apiVersion: apps/v1 kind: DaemonSet metadata: name: nginx-ds labels: app: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.0 ports: - containerPort: 80
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| apiVersion: apps/v1 kind: DaemonSet metadata: name: nginx-ds labels: app: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.0 ports: - containerPort: 80
|
DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本

DaemonSet 的一些典型用法:
- 在每个节点上运行集群守护进程
- 在每个节点上运行日志收集守护进程
在每个节点上运行监控守护进程

ReplicaSet 输出中包含以下字段:
NAME 列出名字空间中 ReplicaSet 的名称;
DESIRED 显示应用的期望副本个数,即在创建 Deployment 时所定义的值。 此为期望状态;
CURRENT 显示当前运行状态中的副本个数;
UP-TO-DATE 显示为了达到期望状态已经更新的副本数。
AVAILABLE 显示应用可供用户使用的副本数。
READY 显示应用中有多少副本可以为用户提供服务;
AGE 显示应用已经运行的时间长度。