k8s之deployment

在这里插入图片描述

为什么k8s要引入deployment资源

deployment也是保证pod高可用的一种方式,明明已经有RC,为什么还要引入deployment呢?因为deployment解决了RC的一个痛点

创建一个deployment

vi  nginx-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: 10.0.0.11:5000/nginx:1.13
        ports:
        - containerPort: 80
kubectl create  -f  nginx-deploy.yaml

查看deployment

在这里插入图片描述

关联service

kubectl expose deployment nginx-deployment --port=80 --type=NodePort

NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx-deployment   3         3         3            3           41m

NAME                   CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
svc/nginx-deployment   10.254.202.137   <nodes>       80:54134/TCP   6s

NAME                             DESIRED   CURRENT   READY     AGE
rs/nginx-deployment-2602221530   3         3         3         41m

NAME                                   READY     STATUS    RESTARTS   AGE
po/nginx-deployment-2602221530-297vw   1/1       Running   0          41m
po/nginx-deployment-2602221530-3ls8l   1/1       Running   0          41m
po/nginx-deployment-2602221530-d044t   1/1       Running   0          41m

deployment升级

[root@k8s-master deploy]# curl -I 10.0.0.11:59806
HTTP/1.1 200 OK
Server: nginx/1.13.12
Date: Mon, 24 Jun 2019 03:12:38 GMT
….
[root@k8s-master deploy]# kubectl edit deploy nginx-deploy

[root@k8s-master deploy]# curl -I 10.0.0.11:59806
HTTP/1.1 200 OK
Server: nginx/1.15.5
Date: Mon, 24 Jun 2019 03:13:43 GMT

deployment回滚

[root@k8s-master deploy]# curl -I 10.0.0.11:59806
HTTP/1.1 200 OK
Server: nginx/1.15.5
Date: Mon, 24 Jun 2019 03:34:17 GMT

[root@k8s-master deploy]# kubectl rollout undo deployment nginx-deploy 
deployment "nginx-deploy" rolled back

[root@k8s-master deploy]# curl -I 10.0.0.11:59806
HTTP/1.1 200 OK
Server: nginx/1.13.12
Date: Mon, 24 Jun 2019 03:34:52 GMT


deployment最佳实践

版本发布
kubectl run nginx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 –record
版本升级
kubectl set image deploy nginx nginx=10.0.0.11:5000/nginx:1.15

历史版本查询
[root@k8s-master deploy]# kubectl rollout history deployment nginx
deployments "nginx"
REVISION	CHANGE-CAUSE
1		kubectl run nginx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
2		kubectl set image deploy nginx nginx=10.0.0.11:5000/nginx:1.15

猜你喜欢

转载自blog.csdn.net/qq_37362891/article/details/110454008