demploment使用

创建deployment

nginx-dempoyment.yml

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      # unlike pod-nginx.yaml, the name is not included in the meta data as a unique name is
      # generated from the deployment name
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
$ kubectl create -f nginx_depolyment.yml
deployment.apps "nginx-deployment" created

查看demployment


root@ubuntu-128:/home/itcast/working/deployment# kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   2/2     2            2           23m
root@ubuntu-128:/home/itcast/working/deployment# kubectl get deployments -o wide
NAME               READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES      SELECTOR
nginx-deployment   2/2     2            2           23m   nginx        nginx:1.7.9   app=nginx
root@ubuntu-128:/home/itcast/working/deployment#

查看deployment细节描述,按照标签方式查看

root@ubuntu-128:/home/itcast/working/deployment# kubectl describe deployment nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Tue, 13 Aug 2019 07:10:14 +0800
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.7.9
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-76bf4969df (2/2 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  2m57s  deployment-controller  Scaled up replica set nginx-deployment-76bf4969df to 2
root@ubuntu-128:/home/itcast/working/deployment# kubectl get pod --show-labels
NAME                                READY   STATUS    RESTARTS   AGE     LABELS
nginx-deployment-76bf4969df-b6srp   1/1     Running   0          4m24s   app=nginx,pod-template-hash=76bf4969df
nginx-deployment-76bf4969df-d8kj9   1/1     Running   0          4m24s   app=nginx,pod-template-hash=76bf4969df
root@ubuntu-128:/home/itcast/working/deployment# kubectl get pod -l app=nginx
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-76bf4969df-b6srp   1/1     Running   0          3m55s
nginx-deployment-76bf4969df-d8kj9   1/1     Running   0          3m55s

更新deployment

nginx_depolyment_update.yml

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.8 # Update the version of nginx from 1.7.9 to 1.8
        ports:
        - containerPort: 80

更新deployment 只能使用apply,其实apply有创建和更新的作用

$ kubectl apply -f nginx_depolyment_update.yml
depolyment "nginx-deployment" updated

可以看到版本已经更新了 

root@ubuntu-128:/home/itcast/working/deployment# kubectl get deployments -o wide
NAME               READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES      SELECTOR
nginx-deployment   2/2     2            2           31m   nginx        nginx:1.8   app=nginx

再次增加实例数目 2--->4

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 4 # Update the replicas from 2 to 4
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.8
        ports:

pod变成了三个了

root@ubuntu-128:/home/itcast/working/deployment# kubectl get pods
NAME                                READY   STATUS              RESTARTS   AGE
nginx-deployment-5896fbb489-2vp6n   1/1     Running             0          6m3s
nginx-deployment-5896fbb489-59tp9   0/1     ContainerCreating   0          83s
nginx-deployment-76bf4969df-d8kj9   1/1     Running             0          12m
nginx-deployment-76bf4969df-wr2vq   1/1     Running             0          7m20s

第三种修改的方式,直接修改,推荐

kubectl edit -f nginx_deployment_scale.yml

删除demployment 

$ kubectl delete deployment nginx-deployment
depolyment "nginx-deployment" deleted

探究deployment原理

root@ubuntu-128:/home/itcast/working/deployment# kubectl rollout history deployment nginx-deployment --revision=1
deployment.extensions/nginx-deployment with revision #1
Pod Template:
  Labels:       app=nginx
        pod-template-hash=76bf4969df
  Containers:
   nginx:
    Image:      nginx:1.7.9
    Port:       80/TCP
    Host Port:  0/TCP
    Environment:        <none>
    Mounts:     <none>
  Volumes:      <none>

root@ubuntu-128:/home/itcast/working/deployment# kubectl rollout history deployment nginx-deployment --revision=2
deployment.extensions/nginx-deployment with revision #2
Pod Template:
  Labels:       app=nginx
        pod-template-hash=5896fbb489
  Containers:
   nginx:
    Image:      nginx:1.8
    Port:       80/TCP
    Host Port:  0/TCP
    Environment:        <none>
    Mounts:     <none>
  Volumes:      <none>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值