Kubernetes虚拟机热添加硬件资源不会生效处理

2024-07-31 287 0

原硬件配置为 2H4G 升级为 4H8G

热加载后 系统已经生效

[root@k8s-node01 ~]# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.5Gi       996Mi       6.5Gi        67Mi       346Mi       6.6Gi
Swap:             0B          0B          0B

[root@k8s-node01 ~]# lscpu | grep CPU
CPU op-mode(s):                     32-bit, 64-bit
CPU(s):                             4
On-line CPU(s) list:                0-3
Model name:                         Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
BIOS Model name:                    Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
CPU family:                         6
NUMA node0 CPU(s):                  0-3
Vulnerability Mds:                  Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Mmio stale data:      Mitigation; Clear CPU buffers; SMT Host state unknown

但Kubernetes 不会自动生效

[root@harbor ~]# kubectl describe node k8s-node01
Name:               k8s-node01
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=k8s-node01
                    kubernetes.io/os=linux
                    node.kubernetes.io/node=
Annotations:        management.cattle.io/pod-limits: {}
                    management.cattle.io/pod-requests: {"cpu":"250m","pods":"1"}
                    node.alpha.kubernetes.io/ttl: 0
                    projectcalico.org/IPv4Address: 192.168.77.94/24
                    projectcalico.org/IPv4IPIPTunnelAddr: 10.243.85.192
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Tue, 12 Dec 2023 13:35:12 -0500
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  k8s-node01
  AcquireTime:     <unset>
  RenewTime:       Tue, 30 Jul 2024 12:15:26 -0400
Conditions:
  Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----                 ------  -----------------                 ------------------                ------                       -------
  NetworkUnavailable   False   Tue, 12 Mar 2024 17:01:23 -0400   Tue, 12 Mar 2024 17:01:23 -0400   CalicoIsUp                   Calico is running on this node

Addresses:
  InternalIP:  192.168.77.94
  Hostname:    k8s-node01
Capacity:
  cpu:                2
  ephemeral-storage:  40383Mi
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             3703128Ki
  pods:               110
Allocatable:
  cpu:                2
  ephemeral-storage:  38110180085
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             3600728Ki
  pods:               110
System Info:
  Machine ID:                 a9bd66d853144a08a6d71037ffebc3f3
  System UUID:                feb32f42-112b-1a87-5952-36ff542fc96a
  Boot ID:                    d530df3e-e939-4eee-897a-147a6b86de5a
  Kernel Version:             5.14.0-362.8.1.el9_3.x86_64
  OS Image:                   Rocky Linux 9.3 (Blue Onyx)
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  containerd://1.6.21
  Kubelet Version:            v1.26.7
  Kube-Proxy Version:         v1.26.7
PodCIDR:                      172.16.1.0/24
PodCIDRs:                     172.16.1.0/24
Non-terminated Pods:          (1 in total)
  Namespace                   Name                 CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                 ------------  ----------  ---------------  -------------  ---
  kube-system                 calico-node-b4wtl    250m (12%)    0 (0%)      0 (0%)           0 (0%)         212d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests    Limits
  --------           --------    ------
  cpu                250m (12%)  0 (0%)
  memory             0 (0%)      0 (0%)
  ephemeral-storage  0 (0%)      0 (0%)
  hugepages-1Gi      0 (0%)      0 (0%)
  hugepages-2Mi      0 (0%)      0 (0%)
Events:              <none>

默认在运行 Kubernetes的虚拟机上热添加内存后,Kubernetes 本身并不会自动识别新添加的内存。你需要手动通知 Kubernetes 关于新增的内存。

需要做下一些步骤:

更新节点状态:首先,你需要打开虚拟机并手动刷新内存信息。在 Linux 系统中,你可以通过以下命令实现:

echo 1 > /proc/sys/vm/drop_caches

这个命令将释放所有空闲页面到内存中,并清除各级缓存。

重启 kubelet:其次,你需要重新启动在该节点上运行的 kubelet 服务以便其获取新的内存信息。kubelet 服务的重启过程取决于你的设置和使用的操作系统。如下是一个示例:

systemctl restart kubelet

确认节点内存:最后,你可以运行以下命令确认 Kubernetes 节点是否已经识别到新的内存:

kubectl describe node <node-name>

在 "Capacity" 或 "Allocatable" 部分,你应该能看到更新的内存数值。

[root@harbor ~]# kubectl describe node k8s-node01
...
Addresses:
  InternalIP:  192.168.77.94
  Hostname:    k8s-node01
Capacity:
  cpu:                4
  ephemeral-storage:  40383Mi
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7897432Ki
  pods:               110
Allocatable:
  cpu:                4
  ephemeral-storage:  38110180085
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7795032Ki
  pods:               110

相关文章

KubeSphere DevOps 流水线JAVA项目配置
虚拟机热添加内存 Kubernetes未生效
Containerd镜像加速及私有仓库配置(用户密码和忽略HTTPS)
在Kubernetes集群部署kubesphere
使用KubeKey快速部署Kubernetes集群1.28.8
Rancher 快速创建RKE K8S集群

发布评论