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

云计算

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

结论与核心观点

在京东云服务器上部署Kubernetes集群,推荐使用kubeadm工具结合京东云提供的云主机、负载均衡和存储服务,通过系统准备、组件安装、集群初始化和网络配置等步骤完成部署。对于生产环境,建议使用至少3个节点(1个Master+2个Worker)的高可用架构。

部署前准备

1. 环境要求

  • 京东云资源

    • 云主机:建议CentOS 7.6+/Ubuntu 18.04+,2核4G配置起
    • 负载均衡:用于API Server高可用
    • 云硬盘:用于持久化存储
    • VPC网络:确保节点间网络互通
  • 系统配置

    # 关闭防火墙
    systemctl stop firewalld && systemctl disable firewalld
    
    # 禁用SELinux
    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
    # 关闭swap
    swapoff -a
    sed -i '/ swap / s/^(.*)$/#1/g' /etc/fstab

2. 安装依赖组件

  • 所有节点安装

    # 安装Docker(以CentOS为例)
    yum install -y yum-utils
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install -y docker-ce docker-ce-cli containerd.io
    systemctl enable --now docker
    
    # 安装kubeadm/kubelet/kubectl
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    
    yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    systemctl enable --now kubelet

集群部署步骤

1. 初始化Master节点

# 使用京东云内网IP初始化
kubeadm init 
  --apiserver-advertise-address=<MASTER_内网IP> 
  --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers 
  --kubernetes-version v1.22.2 
  --service-cidr=10.96.0.0/12 
  --pod-network-cidr=10.244.0.0/16

# 配置kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

2. 加入Worker节点

在Master节点上获取加入命令:

kubeadm token create --print-join-command

在Worker节点上执行输出的join命令。

3. 安装网络插件

推荐使用Calico或Flannel

# Calico安装示例
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

4. 配置京东云负载均衡

  1. 在京东云控制台创建负载均衡实例
  2. 添加TCP监听器,端口6443
  3. 后端绑定所有Master节点

关键配置建议

  • 持久化存储

    • 使用京东云云硬盘+CSI驱动
    • 示例StorageClass配置:
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
      name: jdcloud-ssd
      provisioner: disk.csi.jdcloud.com
      parameters:
      type: ssd
      reclaimPolicy: Delete
  • Ingress控制器

    • 推荐使用Nginx Ingress
    • 结合京东云负载均衡暴露服务

验证与测试

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

# 部署测试应用
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

# 检查服务状态
kubectl get pods,svc

生产环境建议

  1. 高可用架构:部署3个Master节点,使用京东云负载均衡
  2. 节点分组:区分系统组件与业务Pod的节点
  3. 监控告警:集成Prometheus+Grafana
  4. 备份恢复:定期备份etcd数据

重要提示:京东云已推出托管版Kubernetes服务(JKE),对于不熟悉Kubernetes运维的用户,可直接使用托管服务降低管理复杂度。

未经允许不得转载:CLOUD云枢 » 京东云服务器如何部署Kubernetes集群?