kubernetes云平台管理实战:如何创建deployment更好(九)

一、文件创建带--record

1、文件

[root@k8s-master ~]# cat nginx_deploy.yml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: 10.0.128.0:5000/nginx:1.13
        ports:
        - containerPort: 80

2、启动

[root@k8s-master ~]# kubectl create -f nginx_deploy.yml --record
deployment "nginx-deployment" created
[root@k8s-master ~]# kubectl get all -o wide
NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx-deployment   3         3         3            3           7s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-deployment-2950479891   3         3         3         7s        nginx          10.0.128.0:5000/nginx:1.13   app=nginx,pod-template-hash=2950479891

NAME                                   READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-deployment-2950479891-3dwct   1/1       Running   0          7s        172.16.50.2   k8s-node1
po/nginx-deployment-2950479891-6wvsw   1/1       Running   0          7s        172.16.19.2   k8s-node2
po/nginx-deployment-2950479891-95133   1/1       Running   0          7s        172.16.50.3   k8s-node1

3、更新镜像

[root@k8s-master ~]# vim nginx_deploy.yml
版本手动修改为1.15
[root@k8s-master ~]# kubectl apply -f nginx_deploy.yml
deployment "nginx-deployment" configured
[root@k8s-master ~]# kubectl get all -o wide
NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx-deployment   3         3         3            3           1m

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-deployment-2950479891   0         0         0         1m        nginx          10.0.128.0:5000/nginx:1.13   app=nginx,pod-template-hash=2950479891
rs/nginx-deployment-3113009173   3         3         3         7s        nginx          10.0.128.0:5000/nginx:1.15   app=nginx,pod-template-hash=3113009173

NAME                                   READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-deployment-3113009173-4xrq4   1/1       Running   0          7s        172.16.19.3   k8s-node2
po/nginx-deployment-3113009173-5crv5   1/1       Running   0          5s        172.16.19.2   k8s-node2
po/nginx-deployment-3113009173-vckhg   1/1       Running   0          7s        172.16.50.2   k8s-node1

4、显示历史版本

[root@k8s-master ~]# kubectl rollout history deployment nginx-deployment
deployments "nginx-deployment"
REVISION	CHANGE-CAUSE
1		kubectl create -f nginx_deploy.yml --record
2		kubectl apply -f nginx_deploy.yml

二、命令行创建不带--record

1、启动

[root@k8s-master ~]# kubectl delete deployment nginx
deployment "nginx" deleted
[root@k8s-master ~]# kubectl get all -o wide
NAME         CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb
[root@k8s-master ~]# kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5
deployment "nginx" created
[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            5           7s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   5         5         5         7s        nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx

NAME                       READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-835034785-8f4m0   1/1       Running   0          7s        172.16.50.2   k8s-node1
po/nginx-835034785-8j9w2   1/1       Running   0          7s        172.16.19.3   k8s-node2
po/nginx-835034785-c7nx3   1/1       Running   0          7s        172.16.19.4   k8s-node2
po/nginx-835034785-p2vn0   1/1       Running   0          7s        172.16.19.2   k8s-node2
po/nginx-835034785-z42qh   1/1       Running   0          7s        172.16.50.3   k8s-node1

2、更新镜像

[root@k8s-master ~]#  kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15
deployment "nginx" image updated
[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            5           34s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   0         0         0         34s       nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx
rs/nginx-984850083   5         5         5         10s       nginx          10.0.128.0:5000/nginx:1.15   pod-template-hash=984850083,run=nginx

NAME                       READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-984850083-4pd4w   1/1       Running   0          10s       172.16.19.2   k8s-node2
po/nginx-984850083-k979d   1/1       Running   0          10s       172.16.50.4   k8s-node1
po/nginx-984850083-nljkt   1/1       Running   0          4s        172.16.19.4   k8s-node2
po/nginx-984850083-r3hqh   1/1       Running   0          6s        172.16.19.3   k8s-node2
po/nginx-984850083-x6x47   1/1       Running   0          7s        172.16.50.5   k8s-node1

3、查看历史版本

[root@k8s-master ~]# kubectl rollout history deployment nginx
deployments "nginx"
REVISION	CHANGE-CAUSE
1		<none>
2		<none>

三、命令创建不带--record

1、启动

[root@k8s-master ~]# kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
deployment "nginx" created
[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            0           3s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   5         5         0         3s        nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx

NAME                       READY     STATUS              RESTARTS   AGE       IP        NODE
po/nginx-835034785-b9mnp   0/1       ContainerCreating   0          3s        <none>    k8s-node2
po/nginx-835034785-gp2m5   0/1       ContainerCreating   0          3s        <none>    k8s-node1
po/nginx-835034785-hhz0b   0/1       ContainerCreating   0          3s        <none>    k8s-node1
po/nginx-835034785-mvv4p   0/1       ContainerCreating   0          3s        <none>    k8s-node2
po/nginx-835034785-x6mjp   0/1       ContainerCreating   0          3s        <none>    k8s-node1

2、升级镜像版本

[root@k8s-master ~]#  kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15
deployment "nginx" image updated
[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            5           32s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   0         0         0         32s       nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx
rs/nginx-984850083   5         5         5         14s       nginx          10.0.128.0:5000/nginx:1.15   pod-template-hash=984850083,run=nginx

NAME                       READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-984850083-4xt4s   1/1       Running   0          5s        172.16.50.4   k8s-node1
po/nginx-984850083-gk5fq   1/1       Running   0          7s        172.16.50.2   k8s-node1
po/nginx-984850083-mhp7h   1/1       Running   0          13s       172.16.50.3   k8s-node1
po/nginx-984850083-vs93g   1/1       Running   0          14s       172.16.19.4   k8s-node2
po/nginx-984850083-z5px0   1/1       Running   0          11s       172.16.19.5   k8s-node2

3、查看历史版本

[root@k8s-master ~]# kubectl rollout history deployment nginx
deployments "nginx"
REVISION    CHANGE-CAUSE
1       kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
2       kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15

四、小结

1、创建资源方式总结

方式一:

kubectl create -f nginx_deploy.yml

方式二:

kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record

通过以上三个查看历史版本的详细程度来看方式三为最优,建议生产使用,具体命令如下

kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record

  

原文地址:https://www.cnblogs.com/luoahong/p/10302868.html

时间: 2024-07-29 20:05:05

kubernetes云平台管理实战:如何创建deployment更好(九)的相关文章

kubernetes云平台管理实战:deployment通过标签管理pod(十)

一.kubectl run命令拓展 1.RC创建 [root@k8s-master ~]# kubectl run web --generator=run/v1 --image=10.0.128.0:5000/nginx:1.13 --replicas=3 replicationcontroller "web" created 2.deployment创建 [root@k8s-master ~]# kubectl run web --image=10.0.128.0:5000/ngin

kubernetes云平台管理实战: 高级资源deployment-滚动升级(八)

一.通过文件创建deployment 1.创建deployment文件 [root@k8s-master ~]# cat nginx_deploy.yml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx im

kubernetes云平台管理实战:HPA水平自动伸缩(十一)

一.自动伸缩 1.启动 [root@k8s-master ~]# kubectl autoscale deployment nginx-deployment --max=8 --min=2 --cpu-percent=80 deployment "nginx-deployment" autoscaled 2.查看创建 [root@k8s-master ~]# kubectl get all NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE de

kubernetes云平台管理实战: 滚动升级秒级回滚(六)

一.nginx保证有两个版本 1.查看当前容器运行nginx版本 [root@k8s-master ~]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE myweb-7w38b 1/1 Running 0 4h 172.16.10.4 k8s-node1 myweb-btflm 1/1 Running 0 4h 172.16.48.4 k8s-node2 myweb-cbt47 1/1 Running 0 4h 17

kubernetes云平台管理实战: 自动加载到负载均衡(七)

一.如何实现外界能访问 外界访问不了 1.启动svc [root@k8s-master ~]# cat myweb-svc.yaml apiVersion: v1 kind: Service metadata: name: nginx spec: type: NodePort ports: - port: 80 nodePort: 30001 selector: app: myweb [root@k8s-master ~]# kubectl create -f myweb-svc.yaml se

kubernetes云平台管理实战: 服务发现和负载均衡(五)

一.rc控制器常用命令 1.rc控制器信息查看 [root@k8s-master ~]# kubectl get replicationcontroller NAME DESIRED CURRENT READY AGE myweb 3 3 3 3m [root@k8s-master ~]# kubectl get rc NAME DESIRED CURRENT READY AGE myweb 3 3 3 5m 2.删除rc [root@k8s-master ~]# kubectl delete

openStack 云平台管理节点管理网口流量非常大 出现丢包严重 终端总是时常中断问题调试及当前测试较有效方案

tuning for Data Transfer hosts connected at speeds of 1Gbps or higher <一.本次OpenStack系统调试简单过程简单记录> 1,dmesg 日志,丢包问题关键原因定位; [101231.909932] net_ratelimit: 85 callbacks suppressed 2,ethstatus -i p5p1 实时追踪网口TX/RX状态; 3,具体内核等相关参数调整 # recommended default co

Triton - 创新的开源云平台管理软件

SmartOS是基于Solaris的一个开源的操作系统,囊括了ZFS, Zone, Crossbow, DTrace, KVM, Bhyve等卓越的技术; Triton是基于SmartOS的一套开源免费的云平台管理软件,媲美openstack的所有主要功能模块,安装.升级.管理却比openstack简单很多.所有节点是从USB盘或者网络启动,系统不需要安装到硬盘,所以没有普通OS中的安装和打补丁的概念,系统升级只是需要从新的U盘启动就行.每一个系统核心服务都是通过一个image实现的,通过下载新

云平台项目实战(华为篇)之存储技术续集

接着上次存储技术,我今天与大家分享一下有关SNS2124光纤交换机干货. 分享四:SNS2124光纤交换机 初始帐号:admin 密码:password 设置静态IP地址 如果交换机要求使用固定的IP地址,则可以设置静态IP地址. 操作步骤 1.使用默认密码"password"登录交换机. 2.输入ipaddrset命令设置以太网IP地址.比如:Ethernet IP Address: [192.168.74.102] 设置时区 1.按如下所示输入tstimezone命令. switc