K8S 之 POD标签的应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S 之 POD标签的应用相关的知识,希望对你有一定的参考价值。

一、创建POD时指定相应标签
apiVersion: v1
kind: Pod
metadata:
  name: kubia-manual
  namespace: test
  labels:
    app: web_html         #定义了app标签为:web_html
    env: prod                  #定义了env标签为:prod
spec:
  containers:
    - name: kubia
      image: luksa/kubia
      ports:
        - containerPort: 8080
          protocol: TCP

二、通过标签查看POD

[root@test-nodes1 ~]# kubectl get pod --show-labels -n test      #查看所有pod的标签
NAME                        READY   STATUS    RESTARTS   AGE    LABELS
kubia-manual                1/1     Running   0          47h    app=web_test,env=prod
nginx-dp-856666d759-bfrgj   1/1     Running   0          3d9h   app=nginx-proxy,env=test,pod-template-hash=856666d759
nginx-dp-856666d759-c5p4l   1/1     Running   0          3d9h   app=nginx-proxy,env=test,pod-template-hash=856666d759

[root@test-nodes1 ~]# kubectl get pod -l env=prod -n test   #查看env=prod的标签
NAME           READY   STATUS    RESTARTS   AGE
kubia-manual   1/1     Running   0          47h

三、修改POD标签的属性

[root@test-nodes1 ~]# kubectl get pod -l env=prod -n test
NAME           READY   STATUS    RESTARTS   AGE
kubia-manual   1/1     Running   0          47h
[root@test-nodes1 ~]# kubectl label pod kubia-manual env=debug --overwrite -n test
pod/kubia-manual labeled
[root@test-nodes1 ~]# kubectl get pod --show-labels -n test | grep env=debug
kubia-manual                1/1     Running   0          47h    app=web_test,env=debug

四、为现有POD添加一个标签

[root@test-nodes1 ~]# kubectl label pod kubia-manual mingkang_test=test -n test
pod/kubia-manual labeled
[root@test-nodes1 ~]# kubectl get pod --show-labels -n test | grep kubia-manual
kubia-manual                1/1     Running   0          47h    app=web_test,env=debug,mingkang_test=test

五、通过POD标签,固定到某个NODE上

apiVersion: v1
kind: Pod
metadata:
  name: kubia-manual
  namespace: test
  labels:
    app: web_html
    env: prod
spec:
  nodeSelector:       #节点标签选择器
    gpu: true             #gpu为true的节点
  containers:
    - name: kubia
      image: luksa/kubia
      ports:
        - containerPort: 8080
          protocol: TCP

以上是关于K8S 之 POD标签的应用的主要内容,如果未能解决你的问题,请参考以下文章

K8S调度之标签选择器

K8s 之 Pod 高级用法

k8s之标签

k8s之pod控制器

云原生之kubernetes实战k8s集群核心资源对象之Pod

k8s自主式pod之应用策略规则