K8S标签相关的管理
标签作用:
kv格式,对资源进行标签化,通过标签对资源进行关联管理,以松散耦合的方式。通过labels进行定义、结合selector选择器进行管理
标签管理的范围:
[root@k8smaster01 ~]# kubectl label
apiservices.apiregistration.k8s.io mutatingwebhookconfigurations.admissionregistration.k8s.io
certificatesigningrequests.certificates.k8s.io namespaces
clusterrolebindings.rbac.authorization.k8s.io networkpolicies.networking.k8s.io
clusterroles.rbac.authorization.k8s.io nodes
componentstatuses persistentvolumeclaims
configmaps persistentvolumes
controllerrevisions.apps poddisruptionbudgets.policy
cronjobs.batch pods
csidrivers.storage.k8s.io podsecuritypolicies.policy
csinodes.storage.k8s.io podtemplates
csistoragecapacities.storage.k8s.io priorityclasses.scheduling.k8s.io
customresourcedefinitions.apiextensions.k8s.io prioritylevelconfigurations.flowcontrol.apiserver.k8s.io
daemonsets.apps replicasets.apps
deployments.apps replicationcontrollers
endpoints resourcequotas
endpointslices.discovery.k8s.io rolebindings.rbac.authorization.k8s.io
events roles.rbac.authorization.k8s.io
events.events.k8s.io runtimeclasses.node.k8s.io
flowschemas.flowcontrol.apiserver.k8s.io secrets
horizontalpodautoscalers.autoscaling serviceaccounts
ingressclasses.networking.k8s.io services
ingresses.networking.k8s.io statefulsets.apps
jobs.batch storageclasses.storage.k8s.io
leases.coordination.k8s.io validatingwebhookconfigurations.admissionregistration.k8s.io
limitranges volumeattachments.storage.k8s.io
增加
[root@k8smaster01 ~]# kubectl apply -f mysql-pod.yaml
[root@k8smaster01 ~]# kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
wp-mysql-pod 1/1 Running 0 5s <none>
# 基于pod增加标签
[root@k8smaster01 ~]# kubectl label pods wp-mysql-pod app=mysql
pod/wp-mysql-pod labeled
[root@k8smaster01 ~]# kubectl get all --show-labels
NAME READY STATUS RESTARTS AGE LABELS
pod/wp-mysql-pod 1/1 Running 0 53s app=mysql
# 增加多个标签
[root@k8smaster01 ~]# kubectl label pods wp-mysql-pod app=mysql8 environment=qa server=db
删除
[root@k8smaster01 ~]# kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
wp-mysql-pod 1/1 Running 0 10m app=mysql8,environment=qa,server=db
# 删除server标签
[root@k8smaster01 ~]# kubectl label pods wp-mysql-pod server-
pod/wp-mysql-pod unlabeled
[root@k8smaster01 ~]# kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
wp-mysql-pod 1/1 Running 0 10m app=mysql8,environment=qa
# 删除多个标签
[root@k8smaster01 ~]# kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
wp-mysql-pod 1/1 Running 0 11m <none>
# 基于标签删除
[root@k8smaster01 ~]# kubectl delete pods -l app=mysql8
修改
# 更新标签
[root@k8smaster01 ~]# kubectl label pods wp-mysql-pod app=mysql8 --overwrite
[root@k8smaster01 ~]# kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
wp-mysql-pod 1/1 Running 0 4m57s app=mysql8
查询
[root@k8smaster01 ~]# kubectl get all --show-labels
[root@k8smaster01 ~]# kubectl get pods --show-labels
[root@k8smaster01 ~]# kubectl get nodes --show-labels