马哥课程回顾----deployment

原来k8s与docker 对结通过

CRI ----》dockershim  ---->docker  daemon

kubelet :

 1、cri-docker  ----->docker  CE (daemon)

 2、containerd ( 是 docker 捐献给CNNF 云原生组织的)

dokcer 容器4个组件

docker Daemon  守护进程

containerd  -->CNNF

dockershim  

runc

 Docker Engine早于CRI,因此 Docker Engine不兼容 CRI。 为了解决这个问题,在 kubelet 组件中引入了一个小型软件 shim (dockershim),专门用于填补 Docker Engine 和 CRI 之间的空白, 允许集群操作员继续使用 Docker Engine 作为他们的容器运行时。

deployment

Deployment为Pod和Replica Set提供声明式更新。

spec 定义一组Pod期望状态,status  一组Pod实际状态。期望状态一般来自用户提交的YAML文件,这些信息都保存在Etcd中。

Pod被ReplicaSet管理,ReplicaSet控制pod的数量;ReplicaSet被Deployment管理,Deployment控制pod应用的升级、回滚,当然也能控制pod的数量。Service提供一个统一固定入口,负责将前端请求转发给Pod。

查看deployment 。  kubectl get deployment

查看deploymnet 以yaml格式查看。 kubectl get   deployment   web01 -o yaml  -n test-ns

查看deployment 事件。          kubectl describe  deployment   web01  -n test-ns

应用yaml创建deployment 。  kubectl apply -f nginx.yml

不真正执行生成yaml文件 。  kubectl run myweb99   --image=nginx:1.7.9      --dry-run=client -o yaml

升级deployment 。  kubectl set image    deployment   web01   nginx=nginx:1.13

回滚deployment版本 。 

kubectl rollout history deployment/nginx-deployment                //查看可回滚的历史版本
kubectl rollout undo deployment/nginx-deployment --to-revision=3 //回滚到指定历史版本
kubectl rollout undo deployment/nginx-deployment                     //不指定版本,就是回滚到前一个

扩容缩容deployment 数量。 

[root@k8s-master01 ~]# kubectl get deployment -n test-ns
NAME READY UP-TO-DATE AVAILABLE AGE
web01 3/3 3 3 5d14h
web02 3/3 3 3 5d14h
[root@k8s-master01 ~]# kubectl scale deployment web01 --replicas=5 -n test-ns
deployment.apps/web01 scaled
[root@k8s-master01 ~]# kubectl get deployment -n test-ns
NAME READY UP-TO-DATE AVAILABLE AGE
web01 3/5 5 3 5d14h
web02 3/3 3 3 5d14h

[root@k8s-master01 ~]# kubectl scale deployment web01 --replicas=2 -n test-ns
deployment.apps/web01 scaled
[root@k8s-master01 ~]# kubectl get deployment -n test-ns
NAME READY UP-TO-DATE AVAILABLE AGE
web01 2/2 2 2 5d14h

暴露 deployment端口:(容器的80端口 ,映射到service 的 30000以上端口)

[root@k8s-master01 ~]# kubectl expose deployment myweb --type=NodePort    --port=80
service/myweb exposed

 删除deployment (会删除pod ,rc  ,但不会删除service)

 

posted @ 2023-04-06 11:50  beawh  阅读(25)  评论(0编辑  收藏  举报