k8s集群Node节点管理:节点信息查看及节点label标签管理

这篇具有很好参考价值的文章主要介绍了k8s集群Node节点管理:节点信息查看及节点label标签管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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'.

二、查看节点信息

2.1 查看集群节点信息

[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 查看集群节点详细信息

[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 查看节点描述详细信息

[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节点管理集群

  • 如果是kubeasz安装,所有节点(包括master与node)都已经可以对集群进行管理

  • 如果是kubeadm安装,在node节点上管理时会报如下错误

[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节点的$HOME/.kube/config就可以让node节点也可以实现kubectl命令管理

1, 在node节点的用户家目录创建.kube目录

[root@k8s-worker1 ~]# mkdir /root/.kube

2, 在master节点做如下操作

[root@k8s-worker1 ~]# scp /etc/kubernetes/admin.conf node1:/root/.kube/config

3, 在worker node节点验证

[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

四、节点标签(label)

  • k8s集群如果由大量节点组成,可将节点打上对应的标签,然后通过标签进行筛选及查看,更好的进行资源对象的相关选择与匹配

4.1 查看节点标签信息

[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 设置节点标签信息

4.2.1 设置节点标签

为节点k8s-worker1打一个region=huanai 的标签

[root@k8s-master1 ~]# kubectl label node k8s-worker1 region=huanai
node/k8s-worker1 labeled

4.2.2 查看所有节点标签

[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 查看所有节点带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 设置多维度标签

也可以加其它的多维度标签,用于不同的需要区分的场景

如把k8s-master3标签为华南区,A机房,测试环境,游戏业务

[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 显示节点的相应标签

[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的节点

[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加一个减号的写法来取消标签

[root@k8s-master1 ~]# kubectl label node k8s-worker1 region-
node/k8s-worker1 labeled

4.3.6 标签选择器

标签选择器主要有2类:文章来源地址https://www.toymoban.com/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节点管理:节点信息查看及节点label标签管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S集群node节点状态为notready

    Kubernetes集群中的node节点状态显示为notready,这通常意味着该节点上的一个或多个组件出现了故障。在这种情况下,您需要进一步检查该节点的状态以确定问题的原因。您可以使用kubectl命令检查node的详细信息,例如: 此命令将显示该节点的状态,以及可能导致notready状态的任

    2024年02月15日
    浏览(48)
  • k8s集群—node节点的删除与添加

    在搭建集群过程中,有时候会遇到一个节点处于ready状态,另一个节点处于notready状态,需要把node节点从集群中删除后再次加入。 如果需要在k8s集群中删除节点,首先需要在master节点上删除该节点的相关数据,再删除该节点,接着在该节点上进行reset操作,接着删除相关文件

    2024年02月17日
    浏览(56)
  • k8s集群node节点运行kubectl命令

            在容器化项目部署中,某些应用需要部署到指定的机器上(涉及机器信息收集,然后生成license,机器授权等),所以需要在k8s集群的node节点上,手动执行kubectl命令。         具体的操作步骤如下: (1)在node节点执行任意kubectl命令,例如:kubectl get nodes,可以看到

    2024年02月14日
    浏览(54)
  • K8S集群搭建(多master多node节点)

    目录           一 部署环境 关闭防火墙 设置主机名hostname,管理节点设置主机名为 master  配置hosts主机名解析 配置免密登陆 关闭交换分区 配置内核参数,将桥接的IPv4流量传递到iptables的链 开启ipvs 二 配置软件源 升级centos系统内核 配置时间同步 安装docker服务以及K8S  查

    2024年02月06日
    浏览(48)
  • K8S集群Node节点NotReay状态故障排查思路

    在K8S集群中,经常会出现Node节点处于NotReady的状态,当Node节点处于NotReady状态时,会导致该Node节点上的所有Pod资源停止服务,对整体应用程序会产生一定的影响。 在一个Node节点中可以运行多个Pod资源,每一个Pod资源中可以运行一个容器或者多个容器,同时共享一个网络存储

    2024年01月22日
    浏览(51)
  • Kubeadm安装单master多node节点K8S集群

    记录在刚搭建的3个虚拟机里成功安装K8S1.25版本集群的步骤 由于是成功创建后才记录的博客,只记录了操作步骤,过程中执行命令后的截图会有部分缺失,或者换成了文字。 操作系统:centos7.9 每个服务器配置: 4Gib内存/4vCPU/80G硬盘 网络:NAT模式 K8S集群角色 IP 主机名 安装的

    2024年01月24日
    浏览(60)
  • 【云原生】二进制部署k8s集群(中)搭建node节点

    在上文已经成功部署了etcd分布式数据库、master01节点, 本文将承接上文的内容,继续部署Kubernetes集群中的 worker node 节点和 CNI 网络插件 kubelet 采用 TLS Bootstrapping 机制,自动完成到 kube-apiserver 的注册,在 node 节点量较大或者后期自动扩容时非常有用。   Master apiserver 启用 T

    2024年02月09日
    浏览(58)
  • K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

    故障一:Pod数量太多超出物理节点的限制 每一台Node节点中默认限制最多运行110个Pod资源,当一个应用程序有成百上千的Pod资源时,如果不扩容Node节点或者修改最大Pod数量限制,那么就会导致部分Pod资源无法正常运行,因为节点已经没有资源可以被调度了。 解决思路就是扩容

    2024年02月02日
    浏览(44)
  • 云原生 黑马Kubernetes教程(K8S教程)笔记——第一章 kubernetes介绍——Master集群控制节点、Node工作负载节点、Pod控制单元

    参考文章:kubernetes介绍 本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念、组件和工作原理。 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为

    2024年02月04日
    浏览(56)
  • k8s 查看加入主节点命令 k8s重新查看加入节点命令 k8s输入删除,重新查看加入命令 kuberadm查看加入节点命令

    1. 使用kuberadm 安装成功后,clear清除了屏幕数据,加入命令无法查看,使用如下, 重新查看node如何加入主节点命令 :  2. 画圈的全部是,都复制 ,在node节点 输入命令即可如下:    输入命令后的结果:  3. 总结: 安装成功后,先复制下 加入主节点的命令

    2024年02月11日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包