从零开始:在Linux云服务器上搭建Kubernetes集群的完整指南
在云计算时代,Kubernetes已成为容器编排的事实标准。本文将手把手教你如何在Linux云服务器上搭建一个功能完善的Kubernetes集群,涵盖从环境准备到集群部署的全过程。
一、准备工作
1.1 硬件要求
- 至少2台云服务器(建议3台以上)
- 每台服务器配置:2核CPU/4GB内存/20GB磁盘空间
- 操作系统:Ubuntu 20.04 LTS或CentOS 8
1.2 网络配置
确保服务器之间:
- 可以互相ping通
- 开放以下端口:6443, 2379-2380, 10250-10252
- 配置好SSH免密登录
二、环境配置
2.1 安装Docker
# Ubuntu系统
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
# CentOS系统
sudo yum install -y docker
sudo systemctl enable docker
sudo systemctl start docker
2.2 安装kubeadm/kubelet/kubectl
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
三、初始化Master节点
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
执行成功后,会输出加入集群的命令,类似:
kubeadm join 192.168.0.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
3.1 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
四、安装网络插件
推荐使用Flannel网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
五、加入Worker节点
在每个Worker节点上执行Master初始化时输出的join命令:
kubeadm join 192.168.0.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
六、验证集群状态
kubectl get nodes
kubectl get pods --all-namespaces
所有节点状态应为Ready,核心组件Pod应全部运行正常。
七、常见问题解决
7.1 节点NotReady
检查网络插件是否安装成功,查看kubelet日志:
journalctl -u kubelet -f
7.2 镜像拉取失败
尝试手动拉取镜像或配置国内镜像源:
sudo kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
通过以上步骤,你已经成功在Linux云服务器上部署了一个Kubernetes集群。接下来可以部署自己的应用,或探索更高级的Kubernetes功能如HPA、Ingress等。
记得定期备份集群配置,并保持Kubernetes版本更新以获取安全补丁和新功能。
