如何在京东云Linux服务器上安装和配置Kubernetes?

在京东云(JD Cloud)的 Linux 服务器上安装和配置 Kubernetes,可以按照以下步骤进行。我们以常见的 Ubuntu/CentOS 系统为例,使用 kubeadm 工具来部署单节点或高可用集群。


🛠️ 前提条件

  1. 京东云已创建至少一台 Linux 云服务器(ECS)
    • 推荐:Ubuntu 20.04/22.04 或 CentOS 7/8
    • 至少 2核4G 内存
    • 开放端口:6443, 10250, 30000-32767(NodePort范围)
  2. 使用 root 用户或具有 sudo 权限的用户登录
  3. 所有节点时间同步(建议启用 NTP)

✅ 步骤一:准备环境(所有节点执行)

1. 关闭防火墙(可选,生产环境建议配置规则)

# Ubuntu
sudo ufw disable

# CentOS
sudo systemctl stop firewalld
sudo systemctl disable firewalld

2. 关闭 SELinux(仅 CentOS)

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

3. 禁用 Swap

sudo swapoff -a
sudo sed -i '/swap/s/^(.*)$/#1/g' /etc/fstab

4. 配置内核参数,允许 iptables 桥接流量

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sudo sysctl --system

✅ 步骤二:安装容器运行时(推荐 containerd)

Kubernetes v1.24+ 不再支持 Docker-shim,推荐使用 containerdCRI-O

安装 containerd(以 Ubuntu 为例)

# 更新包索引
sudo apt update

# 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

# 添加 Docker GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加 Docker APT 源
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.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 update
sudo apt install -y containerd.io

# 配置 containerd 使用 systemd cgroup 驱动
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# 编辑配置文件
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

# 启动 containerd
sudo systemctl enable containerd
sudo systemctl restart containerd

✅ 步骤三:安装 kubeadm、kubelet、kubectl

添加 Kubernetes APT/YUM 源

Ubuntu:

# 添加 GPG 密钥(使用阿里云镜像提速)
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/kuberne

# 添加源(替换为阿里云镜像)
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ kubernetes main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 安装工具
sudo apt update
sudo apt install -y kubelet kubeadm kubectl

# 锁定版本避免自动升级
sudo apt-mark hold kubelet kubeadm kubectl

CentOS:

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key
EOF

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

sudo systemctl enable --now kubelet

✅ 步骤四:初始化主节点(Master Node)

只在主节点执行

sudo kubeadm init 
  --pod-network-cidr=10.244.0.0/16 
  --apiserver-advertise-address=<你的公网IP或内网IP> 
  --kubernetes-version=v1.30.0

📌 替换 <你的公网IP或内网IP> 为你的京东云 ECS 实例 IP(建议使用内网 IP,更安全)。

初始化成功后,按提示配置 kubeconfig:

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

✅ 步骤五:安装 Pod 网络插件(CNI)

推荐使用 Flannel

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

等待网络就绪:

kubectl get pods -n kube-system

直到 corednsflannel 的 Pod 都处于 Running 状态。


✅ (可选)加入工作节点(Worker Nodes)

在其他京东云服务器上完成前面的环境准备 + 安装 kubeadm/kubelet/kubectl 后,使用 kubeadm init 输出的 kubeadm join 命令加入集群:

sudo kubeadm join <control-plane-host>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

✅ 验证集群状态

kubectl get nodes
kubectl get pods -A

你应该看到节点状态为 Ready


🔐 安全建议(京东云环境)

  1. 不要暴露 6443 端口到公网,除非必要。
  2. 使用 VPC 内网通信连接节点。
  3. 配置安全组规则,只允许可信 IP 访问 API Server。
  4. 使用 RBAC 控制权限。
  5. 定期更新 Kubernetes 版本。

🧰 常见问题排查

问题 解决方法
kubeadm init 失败 检查 swap 是否关闭、containerd 是否运行、端口是否被占用
Pod 无法启动 检查 CNI 插件是否安装成功
节点 NotReady 检查 kubelet 日志:journalctl -u kubelet

📚 参考资料

  • Kubernetes 官方文档: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/
  • 阿里云镜像站: https://developer.aliyun.com/mirror/
  • Flannel 官方: https://github.com/flannel-io/flannel

✅ 完成!你现在已经在京东云 Linux 服务器上成功部署了 Kubernetes 集群。

如需部署高可用集群(多 master),可结合京东云负载均衡(LB)和 etcd 集群实现。需要我提供 HA 部署方案吗?

未经允许不得转载:CCLOUD博客 » 如何在京东云Linux服务器上安装和配置Kubernetes?