Kubernetes集群Node管理
一、查看集群信息
[root@k8s-master1 ~]# kubectl cluster-info
Kubernetes control plane is running at https://192.168.10.100:6443
CoreDNS is running at https://192.168.10.100:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
二、查看節(jié)點信息
2.1 查看集群節(jié)點信息
[root@k8s-master1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master1 Ready <none> 2d20h v1.21.10
k8s-master2 Ready <none> 2d20h v1.21.10
k8s-master3 Ready <none> 2d20h v1.21.10
k8s-worker1 Ready <none> 2d20h v1.21.10
2.2 查看集群節(jié)點詳細信息
[root@k8s-master1 ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master1 Ready <none> 2d20h v1.21.10 192.168.10.12 <none> CentOS Linux 7 (Core) 5.17.0-1.el7.elrepo.x86_64 containerd://1.6.1
k8s-master2 Ready <none> 2d20h v1.21.10 192.168.10.13 <none> CentOS Linux 7 (Core) 5.17.0-1.el7.elrepo.x86_64 containerd://1.6.1
k8s-master3 Ready <none> 2d20h v1.21.10 192.168.10.14 <none> CentOS Linux 7 (Core) 5.17.0-1.el7.elrepo.x86_64 containerd://1.6.1
k8s-worker1 Ready <none> 2d20h v1.21.10 192.168.10.15 <none> CentOS Linux 7 (Core) 5.17.0-1.el7.elrepo.x86_64 containerd://1.6.1
2.3 查看節(jié)點描述詳細信息
[root@k8s-master1 ~]# kubectl describe node k8s-master1
Name: k8s-master1
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=k8s-master1
kubernetes.io/os=linux
Annotations: node.alpha.kubernetes.io/ttl: 0
projectcalico.org/IPv4Address: 192.168.10.12/24
projectcalico.org/IPv4IPIPTunnelAddr: 10.244.159.128
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Tue, 22 Mar 2022 23:47:53 +0800
Taints: <none>
Unschedulable: false
Lease:
HolderIdentity: k8s-master1
AcquireTime: <unset>
RenewTime: Fri, 25 Mar 2022 20:38:38 +0800
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
NetworkUnavailable False Wed, 23 Mar 2022 00:14:05 +0800 Wed, 23 Mar 2022 00:14:05 +0800 CalicoIsUp Calico is running on this node
MemoryPressure False Fri, 25 Mar 2022 20:36:09 +0800 Tue, 22 Mar 2022 23:47:53 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Fri, 25 Mar 2022 20:36:09 +0800 Tue, 22 Mar 2022 23:47:53 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Fri, 25 Mar 2022 20:36:09 +0800 Tue, 22 Mar 2022 23:47:53 +0800 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Fri, 25 Mar 2022 20:36:09 +0800 Fri, 25 Mar 2022 00:30:10 +0800 KubeletReady kubelet is posting ready status
Addresses:
InternalIP: 192.168.10.12
Hostname: k8s-master1
Capacity:
cpu: 2
ephemeral-storage: 51175Mi
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 3994696Ki
pods: 110
Allocatable:
cpu: 2
ephemeral-storage: 48294789041
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 3892296Ki
pods: 110
System Info:
Machine ID: a2c5254d78184027930ef5ba59f52d61
System UUID: e9dc4d56-4819-1544-2b93-21af423126d2
Boot ID: e45fcd72-4fc2-45b5-be15-7d944a6b8bcd
Kernel Version: 5.17.0-1.el7.elrepo.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: containerd://1.6.1
Kubelet Version: v1.21.10
Kube-Proxy Version: v1.21.10
PodCIDR: 10.244.2.0/24
PodCIDRs: 10.244.2.0/24
Non-terminated Pods: (3 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age
--------- ---- ------------ ---------- --------------- ------------- ---
default nginx-web-bbh48 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2d20h
kube-system calico-node-nkxrs 250m (12%) 0 (0%) 0 (0%) 0 (0%) 2d20h
kube-system metrics-server-8bb87844c-ptkxm 100m (5%) 0 (0%) 200Mi (5%) 0 (0%) 11h
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 350m (17%) 0 (0%)
memory 200Mi (5%) 0 (0%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-1Gi 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
Events: <none>
三、worker node節(jié)點管理集群
-
如果是kubeasz安裝,所有節(jié)點(包括master與node)都已經(jīng)可以對集群進行管理
-
如果是kubeadm安裝,在node節(jié)點上管理時會報如下錯誤
[root@k8s-worker1 ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
只要把master上的管理文件/etc/kubernetes/admin.conf
拷貝到node節(jié)點的$HOME/.kube/config
就可以讓node節(jié)點也可以實現(xiàn)kubectl命令管理
1, 在node節(jié)點的用戶家目錄創(chuàng)建.kube
目錄
[root@k8s-worker1 ~]# mkdir /root/.kube
2, 在master節(jié)點做如下操作
[root@k8s-worker1 ~]# scp /etc/kubernetes/admin.conf node1:/root/.kube/config
3, 在worker node節(jié)點驗證
[root@k8s-worker1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master1 Ready <none> 2d20h v1.21.10
k8s-master2 Ready <none> 2d20h v1.21.10
k8s-master3 Ready <none> 2d20h v1.21.10
k8s-worker1 Ready <none> 2d20h v1.21.10
四、節(jié)點標簽(label)
- k8s集群如果由大量節(jié)點組成,可將節(jié)點打上對應的標簽,然后通過標簽進行篩選及查看,更好的進行資源對象的相關選擇與匹配
4.1 查看節(jié)點標簽信息
[root@k8s-master1 ~]# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master1 Ready <none> 2d20h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master1,kubernetes.io/os=linux
k8s-master2 Ready <none> 2d20h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master2,kubernetes.io/os=linux
k8s-master3 Ready <none> 2d20h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master3,kubernetes.io/os=linux
k8s-worker1 Ready <none> 2d20h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker1,kubernetes.io/os=linux
4.2 設置節(jié)點標簽信息
4.2.1 設置節(jié)點標簽
為節(jié)點k8s-worker1
打一個region=huanai
的標簽
[root@k8s-master1 ~]# kubectl label node k8s-worker1 region=huanai
node/k8s-worker1 labeled
4.2.2 查看所有節(jié)點標簽
[root@k8s-master1 ~]# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master1 Ready <none> 2d21h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master1,kubernetes.io/os=linux
k8s-master2 Ready <none> 2d21h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master2,kubernetes.io/os=linux
k8s-master3 Ready <none> 2d21h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master3,kubernetes.io/os=linux
k8s-worker1 Ready <none> 2d21h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker1,kubernetes.io/os=linux,region=huanai
4.2.3 查看所有節(jié)點帶region的標簽
[root@k8s-master1 ~]# kubectl get nodes -L region
NAME STATUS ROLES AGE VERSION REGION
k8s-master1 Ready <none> 2d21h v1.21.10
k8s-master2 Ready <none> 2d21h v1.21.10
k8s-master3 Ready <none> 2d21h v1.21.10
k8s-worker1 Ready <none> 2d21h v1.21.10 huanai
4.3 多維度標簽
4.3.1 設置多維度標簽
也可以加其它的多維度標簽,用于不同的需要區(qū)分的場景
如把k8s-master3
標簽為華南區(qū),A機房,測試環(huán)境,游戲業(yè)務
[root@k8s-master1 ~]# kubectl label node k8s-master3 zone=A env=test bussiness=game
node/k8s-master3 labeled
[root@k8s-master1 ~]# kubectl get nodes k8s-master3 --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master3 Ready <none> 2d21h v1.21.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,bussiness=game,env=test,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master3,kubernetes.io/os=linux,zone=A
4.3.2 顯示節(jié)點的相應標簽
[root@k8s-master1 ~]# kubectl get nodes -L region,zone
NAME STATUS ROLES AGE VERSION REGION ZONE
k8s-master1 Ready <none> 2d21h v1.21.10
k8s-master2 Ready <none> 2d21h v1.21.10
k8s-master3 Ready <none> 2d21h v1.21.10 A
k8s-worker1 Ready <none> 2d21h v1.21.10 huanai
4.3.3 查找region=huanai
的節(jié)點
[root@k8s-master1 ~]# kubectl get nodes -l region=huanai
NAME STATUS ROLES AGE VERSION
k8s-worker1 Ready <none> 2d21h v1.21.10
4.3.4 標簽的修改
[root@k8s-master1 ~]# kubectl label node k8s-master3 bussiness=ad --overwrite=true
node/k8s-master3 labeled
加上--overwrite=true覆蓋原標簽的value進行修改操作
[root@k8s-master1 ~]# kubectl get nodes -L bussiness
NAME STATUS ROLES AGE VERSION BUSSINESS
k8s-master1 Ready <none> 2d21h v1.21.10
k8s-master2 Ready <none> 2d21h v1.21.10
k8s-master3 Ready <none> 2d21h v1.21.10 ad
k8s-worker1 Ready <none> 2d21h v1.21.10
4.3.5 標簽的刪除
使用key加一個減號的寫法來取消標簽文章來源:http://www.zghlxwxcb.cn/news/detail-770427.html
[root@k8s-master1 ~]# kubectl label node k8s-worker1 region-
node/k8s-worker1 labeled
4.3.6 標簽選擇器
標簽選擇器主要有2類:文章來源地址http://www.zghlxwxcb.cn/news/detail-770427.html
- 等值關系: =, !=
- 集合關系: KEY in {VALUE1, VALUE2…}
[root@k8s-master1 ~]# kubectl label node k8s-master2 env=test1
node/k8s-master2 labeled
[root@k8s-master1 ~]# kubectl label node k8s-master3 env=test2
node/k8s-master3 labeled
[root@k8s-master1 ~]# kubectl get node -l "env in(test1,test2)"
NAME STATUS ROLES AGE VERSION
k8s-master2 Ready <none> 2d21h v1.21.10
k8s-master3 Ready <none> 2d21h v1.21.10
到了這里,關于k8s集群Node節(jié)點管理:節(jié)點信息查看及節(jié)點label標簽管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!