在云计算和容器化技术飞速发展的今天,Kubernetes 已经成为了容器编排领域的领导者。而 K3s 作为 Kubernetes 的轻量级解决方案,特别适合资源有限的环境,比如个人开发、小型团队或 IoT 设备。本文将带领大家通过 Docker 环境轻松搭建一个 K3s 集群。
1. 准备工作
1.1 安装 Docker
在开始之前,确保你的系统中已经安装了 Docker。如果没有安装,可以通过以下命令安装:
# 对于 Ubuntu 系统使用以下命令:
sudo apt-get update
sudo apt-get install docker.io
# 对于 CentOS 系统使用以下命令:
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动 Docker 并设置为开机自启
sudo systemctl start docker
sudo systemctl enable docker
1.2 配置 Docker 网络
为了确保 Docker 容器之间的网络通信,我们需要配置 Docker 网络。以下命令将创建一个名为 bridge 的网络:
sudo docker network create -d bridge k3s
2. 安装 K3s 集群
2.1 启动第一个 Master 节点
在第一个节点上,使用以下命令启动 K3s 作为 Master 节点:
sudo docker run -d \
--name k3s-server \
--publish 6443:6443 \
--publish 9345:9345 \
--publish 19447:19447 \
--restart=always \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /etc/kubernetes/manifests:/etc/kubernetes/manifests \
--volume /var/lib/rancher/k3s/server/etcd:/etcd \
--network k3s \
rancher/k3s-server \
server \
--cluster-init
2.2 启动其他节点
对于其他节点,使用以下命令启动 K3s:
sudo docker run -d \
--name k3s-agent \
--publish 6443:6443 \
--publish 9345:9345 \
--restart=always \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /etc/kubernetes/manifests:/etc/kubernetes/manifests \
--volume /var/lib/rancher/k3s/server/etcd:/etcd \
--network k3s \
rancher/k3s-agent
确保将 k3s-agent 容器的 --server 参数设置为第一个 Master 节点的 IP 地址。
3. 验证集群
现在我们已经搭建了一个 K3s 集群,可以使用以下命令验证集群状态:
sudo k3s kubectl get nodes
你应该能看到所有节点的状态都是 Ready。
4. 总结
通过以上步骤,我们成功地使用 Docker 在本地环境搭建了一个 K3s 集群。这是一个简单、快速且易于部署的方法,特别适合个人学习和小型团队使用。随着实践的深入,你可以根据需求扩展集群规模、配置高级功能等。