京东云服务器部署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. 配置京东云负载均衡
- 在京东云控制台创建负载均衡实例
- 添加TCP监听器,端口6443
- 后端绑定所有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
生产环境建议
- 高可用架构:部署3个Master节点,使用京东云负载均衡
- 节点分组:区分系统组件与业务Pod的节点
- 监控告警:集成Prometheus+Grafana
- 备份恢复:定期备份etcd数据
重要提示:京东云已推出托管版Kubernetes服务(JKE),对于不熟悉Kubernetes运维的用户,可直接使用托管服务降低管理复杂度。