k8s集群Node管理
# 查看集群信息
kubectl cluster-info
# 查看集群节点信息
kubectl get nodes
# 查看集群节点详细信息
kubectl get nodes -o wide
# 查看节点描述详细信息
kubectl describe node master01
果是kubeasz安装,所有节点(包括master与worker)都已经可以对集群进行管理;如果是kubeadm安装,在worker节点上管理时会报错。 只要把master上的管理文件/etc/kubernetes/admin.conf拷贝到worker节点的$HOME/.kube/config就可以让worker节点也可以实现kubectl命令管理
节点标签(label)
k8s集群如果由大量节点组成,可将节点打上对应的标签,然后通过标签进行筛选及查看,更好的进行资源对象的相关选择与匹配
# 查看节点标签信息
kubectl get node --show-labels
# 设置节点标签
# 为节点worker01打一个'region=huanai'的标签
kubectl label node worker01 region=huanai
kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master01 Ready control-plane 39h v1.26.9 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master01,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
worker01 Ready <none> 38h v1.26.9 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker01,kubernetes.io/os=linux,region=huanai
worker02 Ready <none> 38h v1.26.9 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker02,kubernetes.io/os=linux
# 查看所有节点region的标签
kubectl get nodes -L region
NAME STATUS ROLES AGE VERSION REGION
master01 Ready control-plane 39h v1.26.9
worker01 Ready <none> 38h v1.26.9 huanai
worker02 Ready <none> 38h v1.26.9
# 也可以加其它的多维度标签,用于不同的需要区分的场景。如把master01标签为华南区,A机房,测试环境,游戏业务
kubectl label node master01 zone=A env=test bussiness=game
kubectl get nodes master01 --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master01 Ready control-plane 39h v1.26.9 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,bussiness=game,env=test,kubernetes.io/arch=amd64,kubernetes.io/hostname=master01,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=,zone=A
# 显示节点的相应标签
kubectl get nodes -L region,zone
NAME STATUS ROLES AGE VERSION REGION ZONE
master01 Ready control-plane 39h v1.26.9 A
worker01 Ready <none> 38h v1.26.9 huanai
worker02 Ready <none> 38h v1.26.9
# 查找'region=huanai'的节点
kubectl get nodes -l region=huanai
NAME STATUS ROLES AGE VERSION
worker01 Ready <none> 38h v1.26.9
# 标签的修改,加上--overwrite=true覆盖原标签的value进行修改操作
kubectl label node master01 bussiness=ad --overwrite=true
kubectl get nodes -L bussiness
NAME STATUS ROLES AGE VERSION BUSSINESS
master01 Ready control-plane 39h v1.26.9 ad
worker01 Ready <none> 39h v1.26.9
worker02 Ready <none> 39h v1.26.9
# 标签的删除
# 使用key加一个减号的写法来取消标签
kubectl label node worker01 region-
标签选择器
标签选择器主要有2类:
- 等值关系: =, !=
- 集合关系: KEY in {VALUE1, VALUE2...}
kubectl label node worker01 env=test1
kubectl label node worker02 env=test2
kubectl get node -l "env in(test1,test2)"
NAME STATUS ROLES AGE VERSION
worker01 Ready <none> 39h v1.26.9
worker02 Ready <none> 39h v1.26.9