从零开始:云服务器上安装Kubernetes的完整指南
在当今云原生时代,Kubernetes已成为容器编排的事实标准。本文将手把手教您在云服务器上搭建生产级Kubernetes集群,涵盖主流云平台的最佳实践方案。
🔧 准备工作
在开始安装前,请确保您已准备好:
- 至少2台云服务器(建议配置:2核CPU/4GB内存起)
- Ubuntu 20.04/22.04或CentOS 7/8操作系统
- root权限或sudo权限用户
- 开放的6443(API Server)、2379-2380(etcd)等端口
🚀 分步安装指南
第一步:环境初始化
# 所有节点执行
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
# 设置主机名(master节点)
sudo hostnamectl set-hostname k8s-master
第二步:安装容器运行时
我们推荐使用containerd:
sudo apt-get update && sudo apt-get install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
第三步:安装kubeadm工具包
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
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 \
--apiserver-advertise-address=<您的云服务器内网IP>
成功后会显示加入集群的指令,请妥善保存。
第五步:安装网络插件
推荐使用Flannel:
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
☁️ 主流云平台特别配置
阿里云ECS
需要额外配置:
# 修改kubelet配置
echo 'KUBELET_EXTRA_ARGS="--cloud-provider=external"' | sudo tee /etc/default/kubelet
AWS EC2
需要安装aws-cloud-controller-manager:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/master/docs/manifests/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/master/docs/manifests/aws-cloud-controller-manager-daemonset.yaml
✅ 验证安装
kubectl get nodes
kubectl get pods --all-namespaces
所有组件状态应为Running,且节点显示Ready。
🔧 常见问题排查
- 节点NotReady:检查网络插件是否安装成功
- 镜像拉取失败:配置国内镜像源或使用阿里云镜像仓库
- API Server不可达:检查安全组和网络ACL设置
🎉 总结
通过本指南,您已成功在云服务器上部署了Kubernetes集群。建议进一步配置:
- 安装Ingress Controller(如Nginx Ingress)
- 配置持久化存储(如CSI插件)
- 设置监控告警(Prometheus+Grafana)
Kubernetes学习曲线陡峭,但掌握后将极大提升您的云原生应用管理能力!
