Linux系统如何部署Kubernetes
导读:Linux 上部署 Kubernetes 实操指南 一 环境准备与规划 节点与规模:建议至少准备3台 Linux 服务器(1 个 Master + 2 个 Worker);每台至少2 核 CPU、2GB 内存、20GB 磁盘,并确保节点间...
Linux 上部署 Kubernetes 实操指南
一 环境准备与规划
- 节点与规模:建议至少准备3台 Linux 服务器(1 个 Master + 2 个 Worker);每台至少2 核 CPU、2GB 内存、20GB 磁盘,并确保节点间网络互通(公网或内网均可)。
- 操作系统:推荐使用 CentOS 7.x 或 Ubuntu 16.04+。
- 容器运行时:安装 Docker/Containerd(下文以 Docker 为例)。
- 网络规划:提前规划 Service CIDR 与 Pod CIDR,避免与现有网络冲突;例如:Service CIDR 10.96.0.0/12、Pod CIDR 10.244.0.0/16。
- 基础安全与稳定性:建议时间同步(如 chrony/ntpd)、按需配置防火墙放行、并关闭 Swap(临时:
swapoff -a;永久:注释/etc/fstab中的 swap 行)。
二 安装容器运行时与 kubeadm 组件
- 安装 Docker(CentOS 示例):
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker # 可选:配置镜像加速 sudo tee /etc/docker/daemon.json < < EOF { "registry-mirrors": ["https://mirrors.aliyuncs.com"] } EOF sudo systemctl daemon-reload & & sudo systemctl restart docker - 添加 Kubernetes YUM 源(CentOS 示例,使用国内镜像源提升拉取成功率):
cat < < EOF | sudo tee /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 - 安装 kubeadm、kubelet、kubectl 并设为开机自启:
sudo yum install -y kubelet kubeadm kubectl sudo systemctl enable --now kubelet - Ubuntu 可改用 APT 源安装(示例):
sudo apt-get update & & sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update & & sudo apt-get install -y kubelet kubeadm kubectl sudo systemctl enable --now kubelet
三 初始化控制平面与加入工作节点
- 初始化 Master(示例,按需替换参数):
初始化成功后,按提示保存输出的 kubeadm join 命令,用于后续加入节点。sudo kubeadm init \ --apiserver-advertise-address=< MASTER_IP> \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version=v1.23.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 - 配置 kubectl(在 Master 上):
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config - 加入 Worker 节点(在每台 Worker 上执行保存的 join 命令):
sudo kubeadm join < MASTER_IP> :6443 \ --token < TOKEN> \ --discovery-token-ca-cert-hash sha256:< HASH> - 验证节点状态:
当所有节点状态为 Ready 时,控制平面与节点已就绪。kubectl get nodes
四 部署网络插件与验证
- 选择并部署 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(推荐,生产常用):
- 验证网络与系统组件:
确保 coredns、kube-proxy 与网络插件 Pod 均为 Running,节点为 Ready。kubectl get pods -n kube-system kubectl get nodes
五 常见问题与加固建议
- 节点 NotReady:检查 kubelet 与 容器运行时 是否运行、节点间网络与端口是否可达、时间是否同步;必要时查看
journalctl -u kubelet日志定位。 - 镜像拉取失败:配置 镜像加速 或自建镜像仓库;如使用国内源初始化可显著降低拉取失败率。
- 无法连接 API Server:确认 6443 端口开放、token 未过期、以及 apiserver-advertise-address 配置正确。
- 安全加固:生产环境不建议直接关闭防火墙,应按需放行必要端口(如 6443、10250、10251、10252、8472/udp 等);SELinux 可按需设为 permissive 而非永久禁用;严格管理 token 生命周期并及时轮换。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux系统如何部署Kubernetes
本文地址: https://pptw.com/jishu/786954.html
