“minikube start --memory 5120 --cpus=4” 与“Kind”等效的命令是什么?

“minikube start --memory 5120 --cpus=4” 与“Kind”等效的命令是什么?

在此处Cassandra 部署说明, 它说:

警告:

Minikube 默认内存为 2048MB,CPU 为 2 个。使用默认资源配置运行 Minikube 会导致本教程中出现资源不足错误。为避免这些错误,请使用以下设置启动 Minikube:

minikube 启动--内存 5120--cpus=4

但我不知道如果我使用Kind而不是,等效命令是什么minikube

我还想知道如果我想为我的Kind集群永久设置这些设置,我该怎么做?

答案1

简短回答:kind 中没有等效方法来实现您想要的功能。但是,kind 默认不强制执行任何内存/cpu 限制,因此除非您确实想要这样做,否则您可以跳过以下解释。

没有与 minikube 等效的命令来强制执行 CPU/内存限制。

也就是说,minikube 通过限制 minikube docker 容器的资源量来强制执行资源限制(默认情况下限制为 25% 的内存使用率和 2 个 CPU)。

您可以通过执行以下操作来验证此限制:

# docker inspect minikube --format="{{ .HostConfig.NanoCpus }}"
2000000000 # means 2 CPUs
# docker inspect minikube --format="{{ .HostConfig.Memory }}"
16672358400 # 16GB of RAM, ran on a host with 64GB of RAM

相反,kind 不会对部署的 Docker 容器实施任何限制。您可以通过在 kind 部署的 Docker 容器上运行上述命令来验证这一点。

通过一些(过度的)逆向工程,你可以找出 kind 用来生成容器的 docker run 命令:

# docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro assaflavie/runlike kind-worker
docker run --name=kind-worker --hostname=kind-worker --env=container=docker --env=KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --volume=/lib/modules:/lib/modules:ro --volume=/var --network=kind --privileged --workdir=/ --restart=on-failure:1 --label='io.x-k8s.kind.role=worker' --label='io.x-k8s.kind.cluster=kind' --runtime=runc --detach=true -t kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1

因此,您可以重新运行该类型的工作容器,设置您可能需要的任何 CPU/内存限制。https://docs.docker.com/config/containers/resource_constraints/

答案2

Kind 是一款旨在为 kubernetes 创建本地测试和 CI 环境的工具。它使用 docker 和 kubeadm 作为后端。由于其开发仍在进行中,kind 还支持用于集群管理的 docker 和 kubectl 命令,如果您尝试设置任何内存值或想要更改 docker 容器的默认内存限制,可以使用docker 命令kubectl 命令。Kind 目前仅对网络和负载平衡具有本机控制(因为这些是官方提供的唯一详细信息文档)。

相关内容