如何在Linux服务器上安装Kubernetes
导读:在 Linux 服务器上安装 Kubernetes 的标准流程 一 环境准备与规划 节点与资源:建议至少准备3台服务器(1个 Master + 2个 Worker),每台至少2核 CPU、2GB 内存、20GB 磁盘;所有节点之间网络互通...
在 Linux 服务器上安装 Kubernetes 的标准流程
一 环境准备与规划
- 节点与资源:建议至少准备3台服务器(1个 Master + 2个 Worker),每台至少2核 CPU、2GB 内存、20GB 磁盘;所有节点之间网络互通,可访问外网以下载镜像。
- 系统与网络:操作系统建议CentOS 7+或Ubuntu 18.04+;规划好Pod 网络 CIDR与Service CIDR,并确保节点主机名、MAC 地址、product_uuid唯一。
- 端口与防火墙:放行控制面与节点通信端口,例如6443、2379–2380、10250、10251、10252、10255(按所用网络插件与云安全组策略调整)。
- 容器运行时:Kubernetes 通过 CRI 对接运行时;常见为 containerd 或 Docker(需 cri-dockerd)。
- 基础要求:禁用Swap,完成时间同步,并按需配置内核网络参数与网桥转发。
二 安装容器运行时与系统设置
- 安装容器运行时(二选一)
- containerd(推荐)
- 安装与启动:参考发行版文档安装 containerd,启用并启动服务(systemd)。
- 验证端点:确保存在 /var/run/containerd/containerd.sock。
- Docker(使用 cri-dockerd)
- 安装 Docker,部署并启用 cri-dockerd,确保其监听 unix:///var/run/cri-dockerd.sock。
- containerd(推荐)
- 内核与系统参数(所有节点)
- 关闭 Swap:执行
swapoff -a,并在 /etc/fstab 注释 swap 行。 - 网桥与转发:启用桥接流量进入 iptables(按需设置
net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1),开启 ipv4 转发。
- 关闭 Swap:执行
- 防火墙与安全策略(示例为 firewalld)
- 放行端口:
firewall-cmd --permanent --add-port=6443/tcp;2379-2380/tcp;10250/tcp;10251/tcp;10252/tcp;10255/tcp;随后firewall-cmd --reload。
- 放行端口:
- 时间同步
- 使用 NTP/chrony 保证节点时间一致,避免证书与组件异常。
三 安装 kubeadm、kubelet、kubectl
- 配置软件源
- Ubuntu/Debian:导入 GPG 并添加 Kubernetes APT 源,更新索引后安装工具包。
- CentOS/RHEL:添加 Kubernetes YUM 源后安装工具包。
- 安装与版本策略
- 安装 kubeadm、kubelet、kubectl,建议锁定版本避免误升级;kubelet 版本不应高于 API Server,允许小版本差异。
- 启动与开机自启
- 启动并启用 kubelet(此时会不断重启,等待 kubeadm 初始化指令)。
- cgroup 驱动一致性
- 确保容器运行时与 kubelet 使用相同的 cgroup driver(如 systemd),否则 kubelet 可能启动失败。
四 初始化控制平面与加入工作节点
- 初始化 Master(示例)
- 命令:
kubeadm init --apiserver-advertise-address=< MASTER_IP> --pod-network-cidr=< POD_CIDR> --service-cidr=< SERVICE_CIDR> --image-repository=< REGISTRY> - 国内镜像加速:可指定
--image-repository=registry.aliyuncs.com/google_containers。 - 常见 Pod CIDR:10.244.0.0/16(Flannel)、192.168.0.0/16(Calico)。
- 命令:
- 配置 kubectl
- 非 root 用户执行:
mkdir -p $HOME/.kube & & sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config & & sudo chown $(id -u):$(id -g) $HOME/.kube/config。
- 非 root 用户执行:
- 安装 Pod 网络插件(二选一,集群仅能有一个 Pod 网络)
- Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml - Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- Calico:
- 加入 Worker 节点
- 使用
kubeadm init输出中的kubeadm join ... --token < TOKEN> --discovery-token-ca-cert-hash sha256:< HASH>命令在各 Worker 上执行。
- 使用
- 验证
kubectl get nodes应显示所有节点状态为 Ready。
五 常见问题与快速排查
- 节点 NotReady
- 检查 kubelet 与容器运行时状态;确认 Pod 网络插件已成功部署;核对节点间网络连通性与 Pod CIDR 是否冲突。
- 镜像拉取失败
- 配置合适的 镜像仓库/镜像加速;在受限网络环境预先导入所需镜像。
- 端口或防火墙阻断
- 核对并放行 6443、2379–2380、10250 等关键端口;云上需同步配置安全组规则。
- kubeadm 初始化异常或中断
- 先执行
kubeadm reset清理状态后重试;检查 cgroup 驱动一致性与内核参数。
- 先执行
- 时间漂移
- 确认 NTP/chrony 正常工作,避免因时间偏差导致证书校验失败。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux服务器上安装Kubernetes
本文地址: https://pptw.com/jishu/786955.html
