在当今云原生时代,Kubernetes(简称 K8s)已成为容器编排系统的事实标准。本教程将详细讲解如何在 Ubuntu 系统上部署一个完整的 Kubernetes 集群,适合零基础的小白用户。我们将使用最新稳定版本的工具链,包括 kubeadm、kubelet 和 kubectl,并配置网络插件 Calico,确保你的集群能够正常运行 Pod 通信。
你需要准备以下资源:
首先,在每台机器上执行以下命令:
# 关闭 swap(Kubernetes 不支持启用 swap)sudo swapoff -a# 永久禁用 swap(注释掉 /etc/fstab 中的 swap 行)sudo sed -i '/ swap / s/^/#/' /etc/fstab# 更新系统并安装必要工具sudo apt update && sudo apt upgrade -ysudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release# 添加 Docker 官方 GPG 密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 添加 Docker APT 仓库echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装 Dockersudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io# 将当前用户加入 docker 组(可选,避免每次用 sudo)sudo usermod -aG docker $USER# 配置 containerd 使用 systemd 作为 cgroup 驱动sudo mkdir -p /etc/containerdcat < 在所有节点(Master 和 Worker)上安装 kubeadm、kubelet 和 kubectl:
# 添加 Kubernetes APT 密钥curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg# 添加 Kubernetes APT 仓库echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list# 安装指定版本(建议锁定版本避免自动升级)sudo apt updatesudo apt install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00# 锁定版本防止意外升级sudo apt-mark hold kubelet kubeadm kubectl 在 Master 节点上执行以下命令初始化集群:
# 初始化 Kubernetes 控制平面sudo kubeadm init --pod-network-cidr=192.168.0.0/16# 配置 kubectl(非 root 用户)mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config 初始化成功后,你会看到类似如下的输出,其中包含添加 Worker 节点的命令,请妥善保存:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:...
Kubernetes 需要 CNI(容器网络接口)插件来实现 Pod 之间的通信。我们使用 Calico:
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml 在每台 Worker 节点上,运行之前 kubeadm init 输出的 join 命令:
# 示例命令(请替换为你自己的 token 和 hash)sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 回到 Master 节点,运行以下命令检查节点是否就绪:
kubectl get nodes 如果一切正常,你会看到类似如下输出,所有节点状态为 Ready:
NAME STATUS ROLES AGE VERSIONmaster Ready control-plane 10m v1.28.0worker01 Ready <none> 5m v1.28.0 恭喜!你已经成功完成了 Ubuntu Kubernetes集群部署。现在你可以开始部署应用、学习 Helm、Ingress 控制器等高级功能。记住,Kubernetes安装教程只是第一步,持续学习和实践才能真正掌握这个强大的容器编排系统。如果你是在生产环境中部署,建议进一步配置高可用(HA)控制平面、备份 etcd、设置监控告警等。
希望这篇 Ubuntu搭建K8s 教程对你有帮助!如有疑问,欢迎在评论区交流。
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128353.html