栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

10,deployment,pod的增删改查和标签

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

10,deployment,pod的增删改查和标签

使用命令
#创建名字叫ng1 的pod控制器 和 1个pod
kubectl run ng1 --image=nginx --port=80 -n dev

#查看pod和deployment
kubectl get pod,deploy -n dev

#创建标签
kubectl label pod ng1-8444bdf97f-5gpd6 ver=1.0 -n dev

#更新标签,已经有ver标签的情况下,要更新标签必须加--overwrite,否则报错
kubectl label pod ng1-8444bdf97f-5gpd6 ver=2.0 -n dev --overwrite

#查看标签
kubectl get pod -n dev --show-labels

#删除某个(ver)标签
kubectl label pod ng1-8444bdf97f-5gpd6 -n dev ver-

#直接删除pod,发现会重新创建。原因是此pod由deployment生成
kubectl delete pod ng1-8444bdf97f-5gpd6 -n dev

#删除deployment,pod自动删除
kubectl delete deploy ng1 -n dev

#创建deployment和3个pod
kubectl run ng1 --image=nginx --port=80 --replicas=3 -n dev
kubectl get deploy,pod -n dev --show-labels
kubectl delete deploy ng1 -n dev
使用配置文件

创建一个pod-nginx.yaml,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: ng1
  namespace: dev
  labels:
    version: "3.0" 
    env: "test"
spec:
  containers:
  - image: nginx:latest
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP
#创建1个pod,不会创建deploy
kubectl apply -f pod-nginx.yaml 
#删除pod,不会重新生成pod
kubectl delete -f pod-nginx.yaml 
使用配置文件创建1个deployment和多个pod

操作同上,用下面的配置文件即可

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ng1
  namespace: dev
spec:
  replicas: 3
  selector:
    matchLabels:
      run: ng1
  template:
    metadata:
      labels:
        run: ng1
    spec:
      containers:
      - image: nginx:latest
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP
'''
>kubectl get ns,deploy,pod -n dev --show-labels
NAME                        STATUS   AGE    LABELS
namespace/default           Active   2d     
namespace/dev               Active   3m2s   
namespace/kube-node-lease   Active   2d     
namespace/kube-public       Active   2d     
namespace/kube-system       Active   2d     

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE    LABELS
deployment.apps/ng1   3/3     3            3           2m8s   

NAME                       READY   STATUS    RESTARTS   AGE    LABELS
pod/ng1-78f5d584cd-8vxqk   1/1     Running   0          2m8s   pod-template-hash=78f5d584cd,run=ng1
pod/ng1-78f5d584cd-r9wkr   1/1     Running   0          2m8s   pod-template-hash=78f5d584cd,run=ng1
pod/ng1-78f5d584cd-snrd6   1/1     Running   0          2m8s   pod-template-hash=78f5d584cd,run=ng1

'''
标签选择

Label Selector用于查询和筛选拥有某些标签的资源对象

当前有两种Label Selector:

基于等式的Label Selector

  • name = slave: 选择所有包含Label中key="name"且value="slave"的对象
  • env != production: 选择所有包括Label中的key="env"且value不等于"production"的对象

基于集合的Label Selector

  • name in (master, slave): 选择所有包含Label中的key="name"且value="master"或"slave"的对象
  • name not in (frontend): 选择所有包含Label中的key="name"且value不等于"frontend"的对象

标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号","进行分隔即可。例如:

NAME                   READY   STATUS    RESTARTS   AGE     LABELS
ng1-8444bdf97f-5gpd6   1/1     Running   0          9m44s   run=ng1,title=a,ver=1.0
ng2-57646cbf96-r452f   1/1     Running   0          101s    run=ng2,title=a,ver=2.0


>kubectl get pod -n dev --show-labels -l 'title in (a,b),ver=2.0'
NAME                   READY   STATUS    RESTARTS   AGE    LABELS
ng2-57646cbf96-r452f   1/1     Running   0          4m8s   run=ng2,title=a,ver=2.0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号