Linux云服务器上安装Kubernetes全指南:从零到集群部署
随着容器化技术的普及,Kubernetes已成为云原生应用编排的事实标准。本文将手把手教您在Linux云服务器上完成Kubernetes集群的安装部署,包含最新版本适配和常见问题解决方案。
一、环境准备
在开始安装前,请确保您的云服务器满足以下条件:
- 操作系统:Ubuntu 20.04+/CentOS 7+ 或其他主流Linux发行版
- 硬件配置:至少2核CPU、4GB内存(生产环境建议更高配置)
- 网络环境:服务器间网络互通,建议配置内网IP
- 磁盘空间:系统盘至少20GB可用空间
二、安装前配置
1. 关闭Swap分区
# 临时关闭
sudo swapoff -a
# 永久关闭(编辑/etc/fstab,注释swap相关行)
2. 设置主机名解析
# 编辑/etc/hosts文件
192.168.1.100 master-node
192.168.1.101 worker-node1
3. 配置防火墙规则
# 对于CentOS
sudo firewall-cmd --permanent --add-port={6443,2379-2380,10250,10251,10252}/tcp
sudo firewall-cmd --reload
# 对于Ubuntu
sudo ufw allow 6443/tcp
sudo ufw allow 2379:2380/tcp
# ...其他端口同理
三、安装Docker容器运行时
Kubernetes 1.24+版本已移除对Docker的直接支持,但仍可通过CRI适配:
# Ubuntu安装示例
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
四、安装Kubernetes组件
1. 添加Kubernetes软件源
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates 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
# CentOS/RHEL
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
2. 安装kubeadm、kubelet和kubectl
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
# CentOS/RHEL
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet
五、初始化Kubernetes集群
1. 主节点初始化
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<主节点IP>
成功后会显示加入集群的命令,务必保存!
2. 配置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. 安装网络插件(以Calico为例)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
六、加入工作节点
在每个工作节点上执行初始化时保存的join命令:
sudo kubeadm join <主节点IP>:6443 --token --discovery-token-ca-cert-hash sha256:
七、验证集群状态
kubectl get nodes
kubectl get pods --all-namespaces
所有节点状态应为Ready,核心组件运行正常。
常见问题解决
问题1:kubelet服务无法启动
→ 检查/var/log/syslog或journalctl -u kubelet查看具体错误
问题2:Pod一直处于Pending状态
→ 检查网络插件是否安装成功,使用kubectl describe pod查看详情
问题3:节点NotReady
→ 检查kubelet日志,确认容器运行时是否正常
最佳实践建议
- 生产环境建议使用3个主节点实现高可用
- 定期备份etcd数据(/var/lib/etcd)
- 考虑使用kubespray等工具实现自动化部署
- 配置监控告警系统(Prometheus+Grafana)
通过本指南,您已成功在Linux云服务器上部署了Kubernetes集群。下一步可以尝试部署应用程序或探索更高级的集群管理功能。
