我正在从 minikube 迁移到 Microk8s,我想更改 Microk8s 的配置并控制它可以使用的资源(CPU、内存等)。
在 minikube 中,我们可以使用如下命令来设置 minikube 的资源量:
minikube config set memory 8192
minikube config set cpus 2
但我不知道如何在Microk8s中做到这一点。我使用了以下命令(带或不带 sudo):
microk8s.config set cpus 4
microk8s.config set cpu 4
他们回来了:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: VORCBDRVJUSUZJQ0FURS0tLS0...
server: https://10.203.101.163:16443
name: microk8s-cluster
contexts:
- context:
cluster: microk8s-cluster
user: admin
name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
user:
username: admin
password: ...
但是当我获得该节点的描述时,我看到 Microk8s 使用 8 个 cpu:
Capacity:
cpu: 8
ephemeral-storage: 220173272Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32649924Ki
pods: 110
Allocatable:
cpu: 8
ephemeral-storage: 219124696Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32547524Ki
pods: 110
如何更改Microk8s的配置?
您对microk8s概念理解错误。
与 minikube 不同,microk8s 不会为您配置任何虚拟机,它运行在您的主机上,因此主机的所有资源都分配给 microk8s。
因此,为了将集群资源保持在边界内,您必须使用 k8s pod/容器来管理它资源限制
假设您的主机有 4 个 CPU,并且您不希望 microk8s 集群使用超过一半的容量。
您需要根据正在运行的 Pod 数量设置以下限制。对于单个 pod,它将如下所示:
resources:
requests:
memory: "64Mi"
cpu: 2
limits:
memory: "128Mi"
cpu: 2
在 OS/X 上...
首站多程
sudo launchctl unload /Library/LaunchDaemons/com.canonical.multipassd.plist
接下来编辑配置文件:
sudo su -
vi /var/root/Library/Application\ Support/multipassd/multipassd-vm-instances.json
再次启动多通道
sudo launchctl load /Library/LaunchDaemons/com.canonical.multipassd.plist
在 macOS 上为 MicroK8s 设置 RAM/CPU 资源(通过 Multipass VM)
正如 Anton Kuzmin 和 Chris Snow 所提到的,在 macOS 上
集群在 Multipass VM 上运行,而不是直接在主机上运行,
所以我们应该更改Multipass的设置。
multipass info microk8s-vm
...
microk8s stop
multipass set local.microk8s-vm.cpus=4
multipass set local.microk8s-vm.memory=8G
microk8s start
multipass info microk8s-vm
...
另见这里