Kubernetes – Deployment(部署)

Deployment(部署)为pod和ReplicaSet/副本集提供声明式更新。

你在部署中描述一个期望的状态,部署控制器将根据配置把实际状态更改为期望状态。

用例

部署的常见使用场景如下:

  • 创建部署
  • 更新部署
  • 回滚部署
  • 扩容部署
  • 暂停部署

等等。

创建部署

下面是一个部署示例。它创建了一个ReplicaSet(副本集),生成三个nginx pod:

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:1.7.9
        ports:
        - containerPort: 80

文件保存为nginx-deployment.yaml, 创建部署:

kubectl create -f ./nginx-deployment.yaml

获取部署列表

执行命令:

kubectl get deployment

输出

[root@qikegu-centos5 k8s_demo]# kubectl get deployment
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
nginx1         2/2     2            2           4d1h
nginx3         1/1     1            1           41m
redis-master   1/1     1            1           4d21h

也可以使用describe查看详情:

kubectl describe deployment nginx1

更新部署

修改部署的镜像版本:

kubectl set image deployment/nginx1 nginx=nginx:1.9.1 --record

查看修改生效状态:

kubectl rollout status deployment.v1.apps/nginx1

回滚部署

查看部署历史:

kubectl rollout history deployment.v1.apps/nginx1

查看某个个修订的详细信息:

kubectl rollout history deployment.v1.apps/nginx1 --revision=2

回滚到上个修订:

kubectl rollout undo deployment.v1.apps/nginx-deployment

回滚到某个修订版本:

kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2

伸缩部署

kubectl scale deployment.v1.apps/nginx1 --replicas=10


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载