阅读量:1
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 - 配置主机解析:编辑
/etc/hosts,添加各节点 IP 与主机名 映射 - 内核网络参数:
cat > /etc/sysctl.d/k8s.conf < - 时间同步:
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 < - 安装 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=\ --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:6443 \ --token \ --discovery-token-ca-cert-hash sha256: 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 并精细化放行规则,提升生产安全性。
以上就是关于“CentOS系统下Kubernetes安装教程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm