首页主机资讯如何自定义CentOS上的Kubernetes安装过程

如何自定义CentOS上的Kubernetes安装过程

时间2025-12-12 17:25:03发布访客分类主机资讯浏览778
导读:在 CentOS 上自定义 Kubernetes 安装的可落地方案 一 规划与前置条件 明确目标拓扑与网络:至少准备 1 台 Master 与 1 台 Node;规划 Service CIDR 与 Pod CIDR,避免与宿主机网段冲突。...

在 CentOS 上自定义 Kubernetes 安装的可落地方案

一 规划与前置条件

  • 明确目标拓扑与网络:至少准备 1 台 Master1 台 Node;规划 Service CIDRPod CIDR,避免与宿主机网段冲突。
  • 主机基线:建议 2 核 CPU / 2GB 内存 以上;各节点配置 静态 IP主机名,并做好 /etc/hosts 解析;启用 NTP/chrony 时间同步。
  • 容器运行时:选择 Dockercontainerd;如使用 Docker,将 cgroup 驱动设为 systemd;如使用 containerd,准备 cri-dockerd(适配 kubelet)。
  • 系统与安全:临时关闭 Swap,并按需调整 firewalld/SELinux 策略(生产环境建议精细化放通而非全关)。
  • 软件源与版本:配置 Kubernetes 与 Docker 仓库;如需加速,可使用国内镜像源;明确 Kubernetes 版本 并在所有节点保持一致。

二 最小化自定义流程 kubeadm 方式

  • 安装与配置容器运行时
    • Docker 示例:
      • 安装:yum install -y docker-ce docker-ce-cli containerd.io
      • 配置 cgroup:/etc/docker/daemon.json 写入 { “exec-opts”: [“native.cgroupdriver=systemd”]}
      • 启动:systemctl enable --now docker
    • containerd 示例:安装 containerd,部署 cri-dockerd 并启用 systemd 驱动。
  • 安装 kubeadm/kubelet/kubectl
    • 添加仓库(示例):
      • Kubernetes:cat > /etc/yum.repos.d/kubernetes.repo < < EOF … EOF
      • Docker:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    • 安装指定版本:yum install -y kubelet- kubeadm- kubectl-
    • 启用 kubelet:systemctl enable --now kubelet
  • 内核与网络参数
    • 启用桥接与转发:/etc/sysctl.d/k8s.conf 写入
      • net.bridge.bridge-nf-call-iptables=1
      • net.bridge.bridge-nf-call-ip6tables=1
      • net.ipv4.ip_forward=1
    • 生效:modprobe br_netfilter & & sysctl -p /etc/sysctl.d/k8s.conf
  • 初始化控制平面(示例)
    • kubeadm init --apiserver-advertise-address < MASTER_IP> \ –pod-network-cidr < POD_CIDR> --service-cidr < SERVICE_CIDR> \ –image-repository --kubernetes-version
  • 配置 kubectl
    • mkdir -p $HOME/.kube & & sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    • chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装 CNI 网络插件
    • 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
  • 加入工作节点
    • 使用 kubeadm init 输出或 kubeadm token create --print-join-command 生成的 join 命令在各 Node 执行。

三 常用自定义项与推荐值

  • 自定义 Pod/Service CIDR:初始化时通过 –pod-network-cidr–service-cidr 指定,确保与现有网络不冲突;例如 Pod 使用 10.244.0.0/16(Flannel 常见),Service 使用 10.96.0.0/12(默认)。
  • 镜像仓库与版本锁定:通过 –image-repository 指定国内镜像源(如 registry.aliyuncs.com/google_containers),并固定 kubelet/kubeadm/kubectl版本号,避免滚动差异。
  • 控制平面高可用:准备 多 Master 并使用 kubeadm init --config 指定 InitConfiguration/ClusterConfigurationJoinConfiguration,配合 keepalived/haproxy 或云厂商 LB 暴露 API Server VIP
  • 容器运行时与驱动:Docker 使用 systemd cgroup;containerd 使用 systemd 并启用 cri-dockerd 适配;kubelet 启动参数与容器运行时保持一致。
  • 内核网络优化:启用 IPVS 提升大规模 Service 转发性能(需安装 ipvsadm/ipset 并配置 kube-proxy mode=ipvs)。
  • 安全基线:生产环境不建议直接关闭 firewalld/SELinux,改为按需放通端口(如 6443/10250/10251/10252/8472(UDP) 等);Swap 永久关闭并验证。
  • 时间同步:启用 chrony/ntpd,保证节点间 时间一致性,避免证书与调度异常。

四 进阶自定义与自动化

  • 使用 kubeadm 配置文件
    • 生成模板:kubeadm config print init-defaults > kubeadm-config.yaml
    • 按需修改:networking、apiServer.advertiseAddress、nodeRegistration、criSocket、imageRepository、kubernetesVersion 等
    • 初始化:kubeadm init --config kubeadm-config.yaml
    • 生成 join 配置:kubeadm config print join-defaults > join-config.yaml
  • 使用 Sealos 定制镜像与 Clusterfile
    • 通过 kubeadm.yml 定制 ClusterConfiguration(如 serviceSubnet/podSubnet),构建自定义镜像
    • Clusterfile 中编排 Master/Node 主机、镜像、应用(如 Calico)SSH 连接,支持 values 合并与一键 apply
    • 适合大规模、标准化交付与版本化复现。

五 验证与常见问题排查

  • 基础验证
    • 节点状态:kubectl get nodes(应为 Ready
    • 系统 Pod:kubectl get pods -A(核心组件 Running)
    • 组件日志:journalctl -u kubelet -f;必要时查看容器运行时与 CNI 插件日志
  • 常见问题速查
    • cgroup 驱动不一致:kubelet 与 Docker/containerd 驱动需一致(建议 systemd
    • Swap 未关闭:kubelet 会拒绝启动,确认 swapoff -a 与 /etc/fstab 注释
    • Pod 网段冲突:确认 Pod CIDR 与宿主机/内网网段无重叠
    • 镜像拉取失败:使用 国内镜像源 或配置 imagePullSecrets
    • 节点 NotReady:检查 CNI 插件 是否成功部署、内核参数是否生效、端口是否放通。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何自定义CentOS上的Kubernetes安装过程
本文地址: https://pptw.com/jishu/770694.html
CentOS K8s资源限制设置方法 CentOS上Kubernetes安装的安全性考虑

游客 回复需填写必要信息