首页主机资讯CentOS系统下Kubernetes安装教程

CentOS系统下Kubernetes安装教程

时间2025-12-12 17:08:04发布访客分类主机资讯浏览800
导读:CentOS 下使用 kubeadm 安装 Kubernetes 教程 一 环境准备与前置条件 节点规划:至少准备 1 台 Master 与 1 台 Worker,推荐 CentOS 7/8,各节点间网络互通,具备外网访问以拉取镜像。硬件...

CentOS 下使用 kubeadm 安装 Kubernetes 教程

一 环境准备与前置条件

  • 节点规划:至少准备 1 台 Master1 台 Worker,推荐 CentOS 7/8,各节点间网络互通,具备外网访问以拉取镜像。硬件建议每节点至少 2 CPU 核心、2 GB 内存(生产环境建议更高)。
  • 系统初始化(所有节点执行):
    • 关闭防火墙:sudo systemctl stop firewalld & & sudo systemctl disable firewalld
    • 关闭 SELinux:sudo setenforce 0 并修改 /etc/selinux/configSELINUX=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(所有节点执行):
    sudo yum install -y kubeadm kubelet kubectl --disableexcludekubernetes
    sudo systemctl enable --now kubelet
    
    说明: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
      
  • 网络插件就绪后,节点将变为 Ready 状态。

五 加入 Worker 节点与验证

  • 加入集群(在各 Worker 执行 Master 输出的 join 命令,示例):
    sudo kubeadm join <
        Master_IP>
        :6443 \
      --token <
        token>
         \
      --discovery-token-ca-cert-hash sha256:<
        hash>
        
    
    若 token 过期,可在 Master 执行 kubeadm token create --print-join-command 重新生成。
  • 验证集群状态(在 Master 执行):
    kubectl get nodes
    kubectl get pods -A
    kubectl cluster-info
    
    正常时所有节点状态为 Ready,核心系统 Pod 均为 Running

六 常见问题与优化建议

  • 镜像拉取慢或失败:优先使用 --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
CentOS如何使用JMeter进行负载测试 CentOS与Kubernetes版本匹配问题

游客 回复需填写必要信息