k8s在centos安装教程
导读:在 CentOS 7 上安装 Kubernetes 集群教程 本教程基于 CentOS 7,使用 containerd 作为容器运行时,采用 kubeadm 快速搭建单控制平面集群,并部署 Flannel 作为 Pod 网络插件。 一 环境...
在 CentOS 7 上安装 Kubernetes 集群教程
本教程基于 CentOS 7,使用 containerd 作为容器运行时,采用 kubeadm 快速搭建单控制平面集群,并部署 Flannel 作为 Pod 网络插件。
一 环境准备
- 准备至少 2 台 CentOS 7 主机(建议 2 CPU / 4GB 内存 以上),可互通;记录 Master IP。
- 基本设置(所有节点执行):
- 关闭防火墙(生产环境建议以安全组替代):
- systemctl stop firewalld & & systemctl disable firewalld
- 调整 SELinux:
- setenforce 0
- sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config
- 关闭交换分区:
- swapoff -a
- sed -i ‘/swap/d’ /etc/fstab
- 内核网络参数(k8s 网络所需):
- cat <
/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF - sysctl --system
- cat <
/etc/sysctl.d/k8s.conf
- 可选:设置主机名与 /etc/hosts 解析,便于管理。
- 可选:时间同步(提高稳定性):
- yum install -y ntpdate & & ntpdate ntp.aliyun.com
- 关闭防火墙(生产环境建议以安全组替代):
二 安装容器运行时 Containerd
- 安装 containerd:
- yum install -y yum-utils device-mapper-persistent-data lvm2
- yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum install -y containerd.io
- 生成默认配置并启动:
- mkdir -p /etc/containerd
- containerd config default > /etc/containerd/config.toml
- systemctl enable --now containerd & & systemctl status containerd
三 安装 Kubernetes 组件
- 添加 Kubernetes YUM 源(国内镜像,提升拉取速度):
- cat <
/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
- cat <
/etc/yum.repos.d/kubernetes.repo
- 安装 kubelet、kubeadm、kubectl:
- yum install -y kubelet kubeadm kubectl
- 启动 kubelet:
- systemctl enable --now kubelet
四 初始化控制平面
- 预拉取镜像(避免初始化卡住):
- kubeadm config images pull --cri-socket unix:///run/containerd/containerd.sock
- 初始化集群(指定 containerd socket 与 Pod 网段,Flannel 常用 10.244.0.0/16):
- kubeadm init --pod-network-cidr=10.244.0.0/16 --cri-socket unix:///run/containerd/containerd.sock
- 配置 kubectl:
- mkdir -p $HOME/.kube
- cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- chown $(id -u):$(id -g) $HOME/.kube/config
五 部署网络插件与加入工作节点
- 部署 Flannel 网络插件:
- kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 等待片刻,查看节点是否变为 Ready:
- kubectl get nodes
- kubectl get pods -A
- 获取加入命令并在工作节点执行:
- 在 Master 上生成并打印加入命令:
- kubeadm token create --print-join-command
- 在 Worker 节点执行输出的 kubeadm join 命令(包含 TOKEN 与 CA 证书哈希)。
- 在 Master 上生成并打印加入命令:
六 常见问题与建议
- 镜像拉取慢或失败:优先使用国内镜像源,或提前执行 kubeadm config images pull;必要时在 containerd 配置镜像加速。
- 节点 NotReady:确认已安装并成功运行 CNI 插件(如 Flannel),以及内核参数与防火墙策略正确。
- 安全建议:生产环境不建议直接关闭防火墙,改用云厂商安全组或精细化放行 6443/10250/10251/10252 等端口。
- SELinux:本教程设置为 permissive 以简化部署;如需开启,请为 kubelet/容器配置相应 SELinux 策略。
- 版本选择:Kubernetes 版本与 kubeadm/kubelet/kubectl 需保持一致;如需指定版本,可在 yum install 时附加版本号。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: k8s在centos安装教程
本文地址: https://pptw.com/jishu/788267.html
