售前咨询400-838-0503

如何在Linux云服务器上配置Kubernetes?

发布:2025-04-03 04:06

搜索全部帮助分类的文档

如何在Linux云服务器上搭建Kubernetes集群:从零到生产级部署指南

随着云原生技术的普及,Kubernetes已成为容器编排的事实标准。本文将手把手教您在Linux云服务器上部署生产可用的Kubernetes集群,涵盖从环境准备到高可用配置的全过程。

一、环境准备

在开始前,您需要准备:

  • 至少3台Linux云服务器(推荐Ubuntu 20.04+或CentOS 7+)
  • 每台服务器2核CPU/4GB内存以上配置
  • 所有节点间网络互通且时间同步
  • 开放以下端口:6443, 2379-2380, 10250-10252, 30000-32767

💡 生产环境建议使用5节点(3个master+2个worker)配置

二、详细安装步骤

1. 基础环境配置

# 所有节点执行
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

2. 安装容器运行时(以containerd为例)

# 安装依赖
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl

# 添加Docker仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装containerd
sudo apt-get update && sudo apt-get install -y containerd.io

# 配置containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd

3. 安装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 -
cat <

4. 初始化Master节点

# 在主节点执行
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 \
--apiserver-advertise-address=YOUR_SERVER_IP \
--control-plane-endpoint=LOAD_BALANCER_DNS:6443 \
--upload-certs

# 配置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. 加入Worker节点

# 在worker节点执行kubeadm join命令
kubeadm join 192.168.0.100:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

三、集群验证

# 检查节点状态
kubectl get nodes -o wide

# 检查所有Pod状态
kubectl get pods --all-namespaces

# 测试DNS解析
kubectl run -it --rm --restart=Never busybox --image=busybox -- nslookup kubernetes.default

四、生产环境优化建议

  1. 高可用控制平面:部署多个master节点并使用负载均衡器
  2. 持久化存储:配置CSI驱动连接云存储或本地存储
  3. 安全加固:
    • 启用RBAC授权
    • 配置网络策略
    • 定期轮换证书
  4. 监控告警:部署Prometheus+Grafana监控体系

五、常见问题排查

问题现象 可能原因 解决方案
kubelet无法启动 cgroup驱动不匹配 修改/etc/docker/daemon.json和kubelet配置
Pod网络不通 网络插件未正确安装 检查calico/node容器状态
节点NotReady kubelet证书过期 执行kubeadm certs renew

六、总结

通过本文的详细步骤,您已在Linux云服务器上成功部署了Kubernetes集群。后续可考虑:

  • 配置HPA实现自动扩缩容
  • 部署Ingress Controller暴露服务
  • 设置CI/CD流水线

Kubernetes的学习曲线虽然陡峭,但掌握它将为您的云原生之旅打下坚实基础。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单