走啊走
加油

京东云服务器如何部署Kubernetes集群?

服务器价格表

京东云服务器部署Kubernetes集群完整指南

结论先行

在京东云上部署Kubernetes集群可以通过原生Kubernetes工具(kubeadm)或使用京东云提供的Kubernetes服务(JKE)两种主要方式实现。对于大多数企业用户,推荐直接使用JKE服务以简化运维;对于需要深度定制的场景,可使用kubeadm自行搭建。

方案一:使用京东云Kubernetes引擎(JKE)

京东云提供的托管Kubernetes服务是最简单高效的部署方式:

  • 优势特点

    • 完全托管的主节点,无需自行维护
    • 与京东云其他服务(VPC、负载均衡等)深度集成
    • 自动化的节点扩缩容和集群升级
    • 内置监控和日志服务
  • 部署步骤

    1. 登录京东云控制台,进入"容器服务">"Kubernetes集群"
    2. 点击"创建集群",选择地域和可用区
    3. 配置集群基本信息:
      • 集群名称
      • Kubernetes版本(建议选择稳定版本)
      • 网络配置(VPC和子网)
    4. 设置Master节点(托管模式无需配置)
    5. 添加Worker节点:
      • 选择实例规格(建议至少4核8G)
      • 选择操作系统(推荐京东云提供的Kubernetes优化镜像)
      • 设置节点数量和自动伸缩策略
    6. 配置网络插件(flannel或calico)
    7. 设置访问权限和安全组规则
    8. 确认配置并创建集群(约10-15分钟完成)
  • 后续管理

    • 通过kubectl或控制台管理应用部署
    • 使用京东云容器镜像服务存储私有镜像
    • 配置自动伸缩策略应对流量波动

方案二:使用kubeadm自行部署

对于需要完全控制权的场景,可以在京东云虚拟机上自行部署:

  • 准备工作

    • 创建至少3台云主机(1主2从,建议4核8G配置)
    • 确保所有节点在同一VPC内且网络互通
    • 选择Ubuntu 20.04/CentOS 7等支持的操作系统
  • 部署流程

  1. 所有节点基础配置

    # 关闭swap
    sudo swapoff -a
    sudo sed -i '/ swap / s/^/#/' /etc/fstab
    
    # 设置内核参数
    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF
    
    sudo modprobe overlay
    sudo modprobe br_netfilter
  2. 安装容器运行时(以containerd为例)

    # 安装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
  3. 安装kubeadm/kubelet/kubectl

    sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl
    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
    echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] 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
  4. 主节点初始化

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
  5. 安装网络插件(以flannel为例)

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  6. 加入工作节点
    在主节点执行kubeadm token create --print-join-command获取加入命令,在工作节点执行

关键注意事项

  • 网络规划至关重要:确保集群CIDR、服务CIDR和京东云VPC网络不冲突
  • 安全组配置:开放必要的Kubernetes端口(6443,2379,10250等),但限制来源IP
  • 持久化存储:京东云提供云硬盘服务,可通过StorageClass动态供给
  • 监控方案:建议部署Prometheus-Operator或使用京东云监控服务

最佳实践建议

对于生产环境,强烈建议使用京东云托管Kubernetes服务(JKE)而非自建,可降低至少60%的运维复杂度。若必须自建,则应:

  • 使用至少3个主节点实现高可用
  • 为etcd配置京东云的高性能云硬盘
  • 设置定期备份策略(使用velero等工具)
  • 启用基于角色的访问控制(RBAC)

无论采用哪种方案,都应先在测试环境验证部署流程,确保熟悉整个架构和运维方法后再部署生产集群。