Linux云服务器上搭建Kubernetes集群的完整指南
在云计算时代,Kubernetes已经成为容器编排的事实标准。本文将详细介绍如何在Linux云服务器上从零开始搭建一个生产可用的Kubernetes集群,包含准备工作、环境配置、集群部署和验证测试等完整流程。
一、准备工作
在开始部署前,需要准备以下资源:
- 3台或以上Linux云服务器(推荐Ubuntu 20.04/22.04或CentOS 7/8)
- 每台服务器建议配置:2核CPU、4GB内存、50GB磁盘
- 所有节点间网络互通(建议关闭防火墙或配置相应规则)
- SSH密钥对用于安全登录
- sudo权限账户
二、环境配置
1. 系统基础配置
# 所有节点执行
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
# 设置主机名(在各节点分别执行)
sudo hostnamectl set-hostname master-node
sudo hostnamectl set-hostname worker-node1
sudo hostnamectl set-hostname worker-node2
# 添加hosts解析
sudo tee -a /etc/hosts <
2. 安装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
三、Kubernetes组件安装
1. 安装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
2. 初始化Master节点
# 仅在master节点执行
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# 初始化成功后,按照提示配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3. 安装网络插件(Flannel)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4. 加入Worker节点
使用kubeadm init输出的join命令,在各个worker节点执行:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
四、集群验证
1. 检查节点状态
kubectl get nodes
2. 部署测试应用
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc
3. 访问测试服务
使用任一节点的IP和分配的NodePort访问Nginx服务
五、后续优化建议
- 配置持久化存储(如NFS、Ceph等)
- 安装监控系统(Prometheus + Grafana)
- 配置Ingress控制器(Nginx Ingress等)
- 设置自动扩缩容(HPA)
- 配置日志收集系统(EFK Stack)
通过以上步骤,您已经成功在Linux云服务器上搭建了一个功能完整的Kubernetes集群。这个集群可以用于开发测试环境,也可以作为生产环境的基础。根据实际需求,您可以进一步优化和扩展集群功能。
