确切地说,“运行时更改”是什么意思?
您的意思是VM(节点)在集群中,您将关闭此VM,添加新资源并再次打开?
如果是,请查找一些信息here 和下面的一些示例:
Minikube
您无法更改它。在创建Minikube集群的过程中,如果你没有指定资源,它会自动创建名称为Minikube、2个CPU和2048 RAM的集群。
如果您将指定 Minikube 资源,例如:
$ sudo minikube start --cpus=4 --memory=8192 -p minikube-name
Kubeadm
基本上如果提到的VM不是Master,你只需要关闭VM,添加资源并再次运行它。 Kubeadm 会自动识别节点资源已更改。
$ kubectl describe node <node-name>
$ kubectl describe node ubuntu18-slave
...
Addresses:
InternalIP: 10.156.0.16
Hostname: ubuntu18-slave
Capacity:
cpu: 2
ephemeral-storage: 9983232Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 7652372Ki
pods: 110
Allocatable:
cpu: 2
ephemeral-storage: 9200546596
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 7549972Ki
pods: 110
...
添加了资源。只需关闭并打开 VM,无需重启kubelet。
$ 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 来实现这一点。
我发现只有一种方法可以做到这一点。你只需要:
* 使用特定资源创建一个新的node_pool
* 将它们添加到集群
* 排空旧节点
* 删除旧节点
注意:
请记住,在关闭VM(节点)之前,您应该drain要关闭的节点。
监控
要实现当前时间的资源使用情况,请创建使用历史记录,您可以使用一些开源或付费软件。一切都取决于您的需求
- Kubernetes 仪表板
- 普罗米修斯 + Grafana
- 数据狗
- Sysdig
等等
不过,我建议您使用 Prometheus,因为它是最受欢迎的之一,您可以在网上找到许多教程。
Here 您可以找到许多有关指标和普罗米修斯的有用信息。