Ubuntu环境下能否在Docker容器中运行Kubernetes多节点集群
Ubuntu系统Docker容器内部署Kubernetes多节点集群方案
完全可以实现,你之前对Minikube、Kind的认知存在偏差,两款工具都不限制只能在本地桌面环境运行,只要Ubuntu环境下Docker服务正常,都可以用来部署多节点K8s集群,更推荐用Kind或K3d两种方案实现,操作成本很低。
方案1:Kind部署多节点集群
Kind的核心设计就是把Docker容器模拟为K8s节点,原生支持多节点配置,在Ubuntu服务端环境也可以正常运行:
- 第一步安装Kind,执行命令:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 && chmod +x ./kind && sudo mv ./kind /usr/local/bin/kind - 第二步编写多节点配置文件(示例为1个控制面节点+2个工作节点),保存为
kind-multi.yaml:
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker
- 第三步执行创建命令:
kind create cluster --config kind-multi.yaml --name k8s-multi - 集群创建完成后执行
kubectl get nodes即可看到所有节点处于Ready状态。
方案2:K3d部署轻量多节点集群
如果你的Ubuntu服务器资源有限,更推荐用K3d,它基于精简版K8s(K3s)实现,资源占用比Kind低30%左右:
- 第一步安装K3d:
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash - 第二步直接用一行命令创建多节点集群(示例1控制面+2工作节点):
k3d cluster create k8s-multi --servers 1 --agents 2 - 创建完成后同样用
kubectl get nodes验证节点状态即可。
注意事项:部署前需要确认Ubuntu环境的Docker版本≥20.10.0,且已开启IPv4转发,执行
sysctl net.ipv4.ip_forward如果返回值为0,需要执行echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p开启后再部署。
内容的提问来源于stack exchange,提问作者Hovhannes Movsisyan
相关产品推荐
相关产品推荐

