11、k8s-资源-Deployment-pod控制器

注意:namespace>deployment>pod>server

 

概念:在kubernetes中、Pod是最小的控制单元、但是kubernetes很少直接控制pod、一般都是通过pod控制器来完成的、pod控制器用于pod的管理、确保pod资源符合预期的状态、当pod资源出现故障时、会尝试进行重启或者重建pod。

 

注意:deployment打的是标签选择器(selector)、而pods打的是标签(label)、两者通过标签选择器和标签的值value来关联、得以让deployment来管理pod

 

deployment的增删改查

1、命令格式:kubectl run deployment名称 [参数]
    #--image    指定pod的镜像
    #--port    指定端口
    #--replicas    指定创建pod的数量
    #namespace    指定空间
2、如新增一个deployment、3个pod:kubectl run nginx --image=nginx:1.17.1 --port=80 --replicas=3 -n dev
  #这里的 nginx 就是pod控制器deployment的名称
  #这里的replicas=3 如上图创建了3个pod 这3个pod统一归nginx这个deployment控制管理的
  #这些pod是通过标签来和deployment 也就是nginx(pod)控制器来进行关联的、在创建pod控制器的时候就默认给这三个pod打上了标签了

3、查看deployment和pods:kubectl get deployment,pods -n dev

 

4、查看deployment控制器的详细信息:kubectl describe deployment nginx -ndev

 5、查看pod的标签:kubectl get pods -ndev --show-labels

 

6、删除deployment:kubectl delete deployment nginx -ndev    #注意删除了deployment后pod也会跟着删除

 

 

使用yaml文件来创建deployment

1、创建yaml文件:vim deployment-pod.yaml
=================================

apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx0
 namespace: dev
spec:
 replicas: 3            #建立3个pod
 selector:
  matchLabels:          #matchLabels 字段是一个键值对的集合,其中键是标签的名称,值是要匹配的标签的值、run: nginx 表示要选择具有标签 run 的值为 nginx 的 Pod
   run: nginx

 template:            #模板  类型建立pod的yaml配置      3个pod会根据这个模板去新建
  metadata:
   labels:
    run: nginx          #pod的标签

  spec:
   containers:
   - image: nginx:1.17.1
     name: nginx
     ports:
     - containerPort: 80
       protocol: TCP
=================================

2、执行yaml文件来创建deploy:kubectl create -f deployment-pod.yaml

3、查看是状态:kubectl get deploy,pods -ndev -o wide --show-labels

 

 

4、查询具有特定标签选择器的 Pod:kubectl get pod -n dev --selector=run=nginx

 

5、删除deployment:kubectl delete -f deployment-pod.yaml



 

posted @ 2024-07-01 00:10  little小新  阅读(3)  评论(0编辑  收藏  举报