从零开始:在云服务器上部署Kubernetes集群的完整指南
随着云原生技术的快速发展,Kubernetes已成为容器编排领域的事实标准。本文将手把手教您如何在主流云服务器上部署生产级Kubernetes集群,并提供多个云平台的适配方案。
准备工作
- 至少2台云服务器(建议4GB内存以上配置)
- Ubuntu 20.04/22.04或CentOS 7/8操作系统
- SSH访问权限
- 云平台API访问密钥(如需使用云提供商集成)
部署步骤详解
1. 环境准备与系统配置
# 所有节点执行
sudo apt update && sudo apt upgrade -y
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
2. 安装容器运行时(以containerd为例)
# 安装containerd
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
3. 安装Kubernetes组件
# 添加Kubernetes仓库
sudo apt 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
# 安装kubelet/kubeadm/kubectl
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
4. 初始化控制平面节点
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
5. 安装网络插件(以Calico为例)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
6. 加入工作节点
在控制平面节点上获取加入命令:
kubeadm token create --print-join-command
在工作节点上执行输出的命令。
主流云平台特别配置
阿里云部署要点
- 需要配置--apiserver-cert-extra-sans参数绑定SLB IP
- 建议使用Terway网络插件
- 配置云控制器管理器(CCM)
AWS部署建议
- 使用kube2iam进行IAM权限管理
- 建议部署AWS Load Balancer Controller
- 配置EBS CSI驱动
Azure最佳实践
- 配置Azure CNI网络插件
- 部署Azure Disk CSI驱动
- 使用Azure Active Directory集成
验证集群状态
kubectl get nodes
kubectl get pods --all-namespaces
所有节点应显示Ready状态,核心组件Pod应全部Running。
生产环境优化建议
- 配置集群自动扩缩容(CA)
- 部署监控系统(Prometheus+Grafana)
- 设置合理的资源请求和限制
- 配置集群备份(Velero)
- 启用RBAC和网络策略
总结
通过本文的详细指导,您应该已经成功在云服务器上部署了Kubernetes集群。不同云平台可能有细微差异,但核心部署流程一致。建议在实际生产环境中考虑高可用部署方案,并实施完善的安全策略。
