LYLIANSONG YEWORK / LIFE / BOOKS

Cloud Native / 2020.04.25

K8S部署

Deployment 为 Pod 和 ReplicaSet 提供声明性更新。 我们可以利用许多部署功能。

本章涵盖更新部署回滚部署调用部署暂停和恢复部署部署状态

首先,我们创建一个部署。

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploymnet
spec:
replicas: 3
selector:
matchLabels:
app: web_server
template:
metadata:
labels:
app: web_server
spec:
containers:
- name: nginx
image: nginx:1.7.9
```

参考此链接:[https://yeliansong.github.io/2020/04/22/K8S-Deployment-Strategies/](https://yeliansong.github.io/2020/04/22/K8S-Deployment- 策略/)

它涵盖了部署的推出和回滚。

您可以根据需要使用以下命令来扩展 Deployment。

>``外壳 >kubectl scale deployment nginx-deploymnet --replicas=10 >``

假设集群中启用了水平 Pod 自动缩放,您可以为 Deployment 设置自动缩放器,并根据现有 Pod 的 CPU 利用率选择要运行的最小和最大 Pod 数量。

>``外壳 >kubectl autoscale deployment nginx-deploymnet --min=10 --max=15 --cpu-percent=20 >``

>``外壳 >kubectl rollout pause deployment nginx-deploymnet >``

这将暂停部署,然后您可以修补此部署的更改。

>`` >kubectl set image deployment nginx-deploymnet nginx=nginx:1.16.1 >``

之后,您可以恢复部署。

>``外壳 >kubectl rollout resume deployment nginx-deploymnet >``

Deployment 在其生命周期中会进入各种状态。 它可以是正在进展、已完成或未进展。

当执行以下任务之一时,部署进入进度状态。

您可以使用 kubectl rollout status 来监控进度。

当具有以下特征时输入完整。

匹配失败的原因有以下一项。

以下命令使用progressDeadlineSeconds 设置规范,以使控制器在您定义的时间之后报告部署缺乏进度。

>``外壳 >Kubectl patch deployment nginx-deployment -p '{"spec":{"progressDeadlineSeconds":600}}' >``

END继续阅读 →