• Kubernates: label


    1. 常用命令

    0. 查询标签含义

    示例:
    查看Deployment.spec.selector的含义
    kubectl explain Deployment.spec.selector

    1. 查看所有节点label

    kubectl get node --show-labels

    2. 查看node的label

    kubectl get node node_name --show-labels

    3. 添加node的label

    kubectl label nodes node_name key=value

    4. 修改node的label

    kubectl label nodes node_name key=vakue --overwrite

    5. 删除node的label

    kubectl label nodes node_name key-
    删除时需要在key的后面加一个-

    6. pod 添加label

    kubectl -n namespace label pod pod-name key=value

    2. meta中的label

    查询资源时可根据meta中的label进行过滤

    apiVersion: apps/v1beta2
    kind: Deployment
    metadata:
      annotations:
        deployment.kubernetes.io/revision: "7"
      creationTimestamp: "2021-03-25T09:25:30Z"
      generation: 9
      labels:
        k8s-app: api-manager
        api-label: xxx
        qcloud-app: api-manager
    

    通过meta中的label的key在查询资源时进行过滤
    kubectl -n name_space get resource -l label_key

    [root@VM_0_16_centos ~]# kubectl -nskd-platform get deploy -l api-label
    NAME          READY   UP-TO-DATE   AVAILABLE   AGE
    api-manager   1/1     1            1           26d
    

    3. matchLabels和template.meta.labels

      matchLabels必须是template.meta.labels的子集
      matchLabels中的标签template.meta.labels中必须有
      template.meta.labels中的标签中matchLabels不一定有
    
      该deploy的副本数根据matchLabels中的label计算
      如果要修改其中matchLabels的label,必须先删除已经存在的deploy,修改后重新部署
    

    4. 副本数

    1. deploy

    deploy根据replicas参数来控制副本的数量

    spec:
      replicas: 2
      selector:
        matchLabels:
          k8s-app: api-manager
          qcloud-app: api-manager
          api-label: xxx
    

    deploy会创建一个ReplicationSet,deploy根据RS中的template.meta.labels信息和自己的matchLabels信息比对,若匹配成功则该RS对象是自己持有的,否则根据自己模板信息创建一个RS对象
    RS根据自己的模板信息创建pod,根据pod里面的template.meta.labels和自己的matchLabels信息比对,若匹配成功则该pod对象是自己持有的,否则根据自己模板信息创建指定数量的pod对象

    5. service

    service代理根据自己的meta.labels和pod的template.meta.labels判断自己代理哪些pod

    如果文章对您有所帮助,可以点一下推荐哦
  • 相关阅读:
    Linux服务器超简单安装Python3环境、Ipython、Jupyter、virtualenv、virtualenvwrapper教程全在这了
    websocket是如何进行建立连接与通信的?(简单理解)
    理解 Python 装饰器看这一篇就够了
    通过Python计算一个文件夹大小
    Python之禅
    centos7之使用最新版的kubeadm体验k8s1.12.0
    gitlab之gitlab-ci和gitlab-runner<二>
    docker-compose部署elk+apm
    k8s之安装docker-ce17.06
    git命令小记
  • 原文地址:https://www.cnblogs.com/virgosnail/p/14609732.html
Copyright © 2020-2023  润新知