Kubernetes如何在运行时处理节点资源更改?

Kubernetes如何在运行时处理节点资源更改?,kubernetes,Kubernetes,我对k8s很陌生。k8s如何处理节点资源更改?例如,如果一些节点是虚拟机,它们的资源分配(cpu和内存)随着时间的推移而变化,k8s控制平面是否会持续监视每个节点可用的计算资源并更新其记录?我发现链接非常有用。要回答您的问题,如果K8s监控资源,是的,它会这样做,因为它必须确保节点上所需的资源在资源允许的范围内,例如CPU。是的,您可以添加grafana以更具描述性的方式查看这些变化,或者kubernetes仪表板也会有所帮助 您还可以计算分配给应用程序的POD的资源限制,以及它们已调度的节点,

我对k8s很陌生。k8s如何处理节点资源更改?例如,如果一些节点是虚拟机,它们的资源分配(cpu和内存)随着时间的推移而变化,k8s控制平面是否会持续监视每个节点可用的计算资源并更新其记录?

我发现链接非常有用。要回答您的问题,如果K8s监控资源,是的,它会这样做,因为它必须确保节点上所需的资源在资源允许的范围内,例如CPU。

是的,您可以添加grafana以更具描述性的方式查看这些变化,或者kubernetes仪表板也会有所帮助


您还可以计算分配给应用程序的POD的资源限制,以及它们已调度的节点,从而大致了解相对于工作节点的内存和cpu占用情况。

准确地说,“运行时更改”是什么意思? 您的意思是虚拟机(节点)在集群中,您将关闭此虚拟机,添加新资源,然后再次打开吗

如果是,请在下面查找一些信息和示例:

Minikube

您无法更改它。在创建
Minikube
集群的过程中,如果您没有指定资源,它将自动创建具有
Minikube
名称、2个CPU和2048个RAM的集群

如果您将指定Minikube资源,例如:

$sudo minikube start--CPU=4--memory=8192-p minikube name

Kubeadm

基本上,如果提到的虚拟机不是主虚拟机,您只需关闭虚拟机,添加资源,然后再次运行它。Kubeadm将自动识别节点资源已更改

$kubectl描述节点

增加资源。只需关闭并打开VM,无需重新启动

$ kubectl describe node ubuntu18-slave
...
Addresses:
  InternalIP:  10.156.0.16
  Hostname:    ubuntu18-slave
Capacity:
 cpu:                8
 ephemeral-storage:  9983232Ki
 hugepages-1Gi:      0
 hugepages-2Mi:      0
 memory:             30875684Ki
 pods:               110
Allocatable:
 cpu:                8
 ephemeral-storage:  9200546596
 hugepages-1Gi:      0
 hugepages-2Mi:      0
 memory:             30773284Ki
 pods:               110
...

这取决于云提供的服务。我已经尝试使用
GKE
来实现这一点。 我只找到了一种方法。你只需要: *使用特定资源创建一个新的
节点\u池
*将它们添加到集群 *排出旧节点 *删除旧节点

注:

请记住,在关闭VM(节点)之前,应该先关闭要关闭的节点

监控

要在当前时间内实现资源使用,请创建使用历史,您可以使用一些开源或付费软件。一切取决于你的需要

  • 库伯内特斯仪表盘
  • 普罗米修斯+格拉法纳
  • 数据狗
  • 系统挖掘 等
不过,我建议您使用普罗米修斯,因为它是最受欢迎的教程之一,您可以在网上找到许多教程。

您可以找到许多关于metrics和prometheus的有用信息。

您可能需要尝试它或跟踪kubelet代码才能确定。但我会随机猜测,你必须重新启动kubelet。虽然它会不断检查磁盘空间,所以可能会刷新ram和cpu计数。非常感谢您提供的详细答案!所谓“运行时的更改”,我指的是在不关闭内核的情况下从VM添加/删除内核,如气球
$ kubectl describe node ubuntu18-slave
...
Addresses:
  InternalIP:  10.156.0.16
  Hostname:    ubuntu18-slave
Capacity:
 cpu:                8
 ephemeral-storage:  9983232Ki
 hugepages-1Gi:      0
 hugepages-2Mi:      0
 memory:             30875684Ki
 pods:               110
Allocatable:
 cpu:                8
 ephemeral-storage:  9200546596
 hugepages-1Gi:      0
 hugepages-2Mi:      0
 memory:             30773284Ki
 pods:               110
...