在此处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 目前仅对网络和负载平衡具有本机控制(因为这些是官方提供的唯一详细信息文档)。