从零开始:Linux云服务器上配置Kubernetes集群完全指南
在云原生时代,Kubernetes已成为容器编排的事实标准。本文将手把手教您在Linux云服务器上搭建生产级Kubernetes集群,涵盖从环境准备到集群部署的全过程。
准备工作
- 服务器资源:至少2台云服务器(建议4核8G配置)
- 操作系统:Ubuntu 20.04/22.04或CentOS 7/8
- 网络要求:服务器间内网互通,开放6443,2379-2380等端口
- 工具准备:SSH客户端,sudo权限账户
详细配置步骤
第一步:系统环境准备
# 所有节点执行
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
# 设置主机名(在各节点分别执行)
sudo hostnamectl set-hostname k8s-master # 主节点
sudo hostnamectl set-hostname k8s-node1 # 工作节点
第二步:安装容器运行时
推荐使用containerd:
# 安装依赖
sudo apt-get update && sudo apt-get install -y containerd
# 配置containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
第三步:安装Kubernetes组件
# 添加Kubernetes源
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
# 安装kubelet, kubeadm, kubectl
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
# 记下输出的join命令,用于工作节点加入
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
第六步:加入工作节点
在工作节点上执行master节点初始化时获得的join命令:
kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
验证集群状态
kubectl get nodes
kubectl get pods --all-namespaces
所有节点状态应为Ready,核心Pod运行正常。
进阶配置建议
- 持久化存储:配置NFS或云提供商存储类
- 负载均衡:部署MetalLB或使用云服务商LB
- 监控:安装Prometheus+Grafana监控套件
- 安全加固:配置RBAC,网络策略等
常见问题排查
节点NotReady:检查kubelet状态 systemctl status kubelet
网络不通:验证Flannel Pod是否正常运行
证书过期:使用kubeadm certs renew
更新证书
总结
本文详细介绍了在Linux云服务器上部署Kubernetes集群的全过程。实际生产环境中,建议考虑使用托管Kubernetes服务或专业部署工具如kops、kubespray等。Kubernetes学习曲线陡峭,建议从测试环境开始逐步掌握各项功能。