CentOS系统下Kubernetes安装教程
导读:CentOS 下使用 kubeadm 安装 Kubernetes 教程 一 环境准备与前置条件 节点规划:至少准备 1 台 Master 与 1 台 Worker,推荐 CentOS 7/8,各节点间网络互通,具备外网访问以拉取镜像。硬件...
CentOS 下使用 kubeadm 安装 Kubernetes 教程
一 环境准备与前置条件
- 节点规划:至少准备 1 台 Master 与 1 台 Worker,推荐 CentOS 7/8,各节点间网络互通,具备外网访问以拉取镜像。硬件建议每节点至少 2 CPU 核心、2 GB 内存(生产环境建议更高)。
- 系统初始化(所有节点执行):
- 关闭防火墙:
sudo systemctl stop firewalld & & sudo systemctl disable firewalld - 关闭 SELinux:
sudo setenforce 0并修改/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled - 禁用 Swap:
sudo swapoff -a并在/etc/fstab中注释含swap的行 - 设置主机名:
sudo hostnamectl set-hostname < master|nodeX> - 配置主机解析:编辑
/etc/hosts,添加各节点 IP 与主机名 映射 - 内核网络参数:
cat > /etc/sysctl.d/k8s.conf < < EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sysctl --system - 时间同步:
sudo yum install -y ntpdate & & sudo ntpdate ntp.aliyun.com
以上为常见且必要的初始化步骤,可显著提升安装成功率与稳定性。
- 关闭防火墙:
二 安装容器运行时与 Kubernetes 组件
- 安装 Docker(所有节点执行):
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 start docker & & sudo systemctl enable docker - 添加 Kubernetes YUM 源(所有节点执行):
cat < < EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF - 安装 kubeadm、kubelet、kubectl(所有节点执行):
说明:kubelet 会持续重启直至集群初始化完成,这是正常现象。sudo yum install -y kubeadm kubelet kubectl --disableexcludekubernetes sudo systemctl enable --now kubelet
三 初始化 Master 节点
- 初始化命令(在 Master 执行,按需替换参数):
常见参数说明:sudo kubeadm init \ --apiserver-advertise-address=< Master_IP> \ --pod-network-cidr=10.244.0.0/16 \ --image-repository registry.aliyuncs.com/google_containers--apiserver-advertise-address:指定 Master IP--pod-network-cidr:Pod 网段,Flannel 常用 10.244.0.0/16--image-repository:国内镜像加速,避免拉取 gcr.io 失败
- 配置 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 - 记录输出中的
kubeadm join ...命令,稍后在 Worker 节点执行以加入集群。
四 安装 CNI 网络插件
- 选择其一部署(在 Master 执行):
- Flannel(推荐新手):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml - Calico(功能更丰富):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- Flannel(推荐新手):
- 网络插件就绪后,节点将变为 Ready 状态。
五 加入 Worker 节点与验证
- 加入集群(在各 Worker 执行 Master 输出的 join 命令,示例):
若 token 过期,可在 Master 执行sudo kubeadm join < Master_IP> :6443 \ --token < token> \ --discovery-token-ca-cert-hash sha256:< hash>kubeadm token create --print-join-command重新生成。 - 验证集群状态(在 Master 执行):
正常时所有节点状态为 Ready,核心系统 Pod 均为 Running。kubectl get nodes kubectl get pods -A kubectl cluster-info
六 常见问题与优化建议
- 镜像拉取慢或失败:优先使用
--image-repository registry.aliyuncs.com/google_containers;必要时配置 Docker 国内镜像加速。 - 防火墙与端口:若未关闭防火墙,需放行 6443、10250、10251、10252、2379、2380 等端口,或直接使用
firewalld停止/禁用策略简化排障。 - 版本选择与一致性:生产环境建议固定版本,所有节点 kubelet/kubeadm/kubectl 版本保持一致,避免兼容性问题。
- 高可用与控制平面端点:多 Master 场景可使用
--control-plane-endpoint与--upload-certs参数进行高可用部署。 - 安全建议:完成安装后可按需开启 SELinux、启用 firewalld 并精细化放行规则,提升生产安全性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS系统下Kubernetes安装教程
本文地址: https://pptw.com/jishu/770677.html
