Kubenetes:标签

编程

1)创建带有标签的pod,编辑gwp-manual-with-labels.yaml

apiVersion: v1

kind: Pod

metadata:

name: gwp-manual-v2

labels:

creation_method: manual

env: prod

spec:

containers:

- image: registry.cn-hangzhou.aliyuncs.com/rogueq/gwp:v1

name: gwp

ports:

- containerPort: 8080

protocol: TCP

2)创建该pod

kubectl create -f gwp-manual-with-labels.yaml

3)查看pod标签

kubectl get pod --show-labels

4)使用-L选项分别显示标签

kubectl get pod -L creation_method,env

5)修改现有pod标签

kubectl label pod gwp-manual creation_method=manual

6)更新现有标签,需要使用--overwrite选项

kubectl label pod gwp-manual-v2 env=debug --overwrite

7)使用标签选择器列出pod

a.列出creation_method=manual的pod

kubectl get pod -l creation_method=manual

b.列出包含env标签的pod

kubectl get pod -l env

c.列出没有env标签的pod

kubectl get pod -l "!env"

d.列出creation_method!=manual的pod

kubectl get pod -l creation_method!=manual

e.列出带有env且值为prod和devel的pod

kubectl get pod -l "env in (prod,devel)"

f.列出带有env且值不为prod和devel的pod

kubectl get pod -l "env notin (prod,devel)"

d.使用多个标签选择器选择pod,用逗号分隔

kubectl get pod -l "env notin (prod,devel)",creation_method!=manual

8)给工作节点添加标签

kubectl label node minikube gpu=true

 查看节点标签

kubectl get node --show-labels

9)使用标签选择器将pod调度到特定节点

编辑gwp-gpu.yaml,在spec部分添加nodeSelector字段,并将gpu设置为false

apiVersion: v1

kind: Pod

metadata:

name: gwp-gpu

spec:

nodeSelector:

gpu: "false"

containers:

- image: registry.cn-hangzhou.aliyuncs.com/rogueq/gwp:v1

name: gwp

ports:

- containerPort: 8080

protocol: TCP

创建pod

kubectl create -f gwp-gpu.yaml

查看pod,一直处于Pending状态,因为只有一个节点且gpu标签时true,所以无法调度

删除gwp-gpu,将yaml中的gpu字段设置为true,再创建pod,查看pod状态,pod正常调度

以上是 Kubenetes:标签 的全部内容, 来源链接: utcz.com/z/511446.html

回到顶部