在京东云(JD Cloud)的 Linux 服务器上安装和配置 Kubernetes,可以按照以下步骤进行。我们以常见的 Ubuntu/CentOS 系统为例,使用 kubeadm 工具来部署单节点或高可用集群。
🛠️ 前提条件
- 京东云已创建至少一台 Linux 云服务器(ECS)
- 推荐:Ubuntu 20.04/22.04 或 CentOS 7/8
- 至少 2核4G 内存
- 开放端口:6443, 10250, 30000-32767(NodePort范围)
- 使用 root 用户或具有 sudo 权限的用户登录
- 所有节点时间同步(建议启用 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,推荐使用
containerd或CRI-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
直到 coredns 和 flannel 的 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。
🔐 安全建议(京东云环境)
- 不要暴露 6443 端口到公网,除非必要。
- 使用 VPC 内网通信连接节点。
- 配置安全组规则,只允许可信 IP 访问 API Server。
- 使用 RBAC 控制权限。
- 定期更新 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博客