中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

部署K8s集群

部署K8s集群的主要步骤包括配置管理节点和计算节点以及在管理节点添加Flannel网络插件。

配置管理节点

如果需要重新搭建K8s集群,需要先清除旧的K8s集群设置,具体操作步骤请参见卸载K8s

  1. 可选:排查是否有配置代理。如果已配置代理,请删除代理,以避免kubeadm init初始化超时失败。
    1. 查看是否配置了代理。
      env|grep -E "http_proxy|https_proxy|no_proxy"

      如果返回结果则配置了代理。

    2. 删除代理。
      export -n http_proxy
      export -n https_proxy
      export -n no_proxy
  2. 如果使用的是CentOS系统,请忽略此步骤;如果使用的是openEuler系统,则需要手动创建resolv.conf文件。在集群初始化需要检验是否存在resolv.conf文件,如果文件不存在,会产生报错。创建resolv.conf文件的命令为:
    touch /etc/resolv.conf
  3. 在管理节点上执行集群初始化命令。
    kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version v1.23.1
    • v1.23.1表示Kubernetes的版本号,请根据实际情况修改。
    • 计算节点不需要执行集群初始化操作。
    • 如果在管理节点初始化的时候提示如下信息。
      /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

      可以通过执行如下命令将/proc/sys/net/bridge/bridge-nf-call-iptables的值配置为1(vim命令不支持修改此文件)。

      echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
    • --pod-network-cidr选项用于指定kubernetes网络可以使用的IP地址段,由于后续使用Flannel网络插件,该插件固定使用的IP地址段为:10.244.0.0/16。
    • --control-plane-endpoint选项用于为控制平面指定一个稳定的IP地址或DNS名称。kubeadm 1.15及以后版本支持该选项,若需要配置该选项,可直接在初始化命令后添加该参数。
    图1 管理节点成功初始化信息

    如果打印此信息如图1所示,则管理节点成功被初始化。

    图1中,黄框信息表示管理节点配置集群需要执行的命令,红框信息表示计算节点加入集群的token命令,请保存该段命令。

  4. 配置集群。
    mkdir -p $HOME/.kube 
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
    sudo chown $(id -u):$(id -g) $HOME/.kube/config 
    export KUBECONFIG=/etc/kubernetes/admin.conf
  5. 在管理节点查看集群节点信息。
    kubectl get nodes
  6. 保存管理节点生成的加入集群信息。

    该信息在成功初始化管理节点后生成并打印,集群信息如下所示。

    kubeadm join 192.168.1.11:6443 --token a9020j.vnfgqk7n30p5d9z0 --discovery-token-ca-cert-hash sha256: c465651177b41c545fe20f8dc052b9661a8375afdeac7e7ecf52029fc66a506a

    该token命令可以用于24小时内计算节点加入集群。

    • 集群加入token是随机生成的,在搭建集群时需要使用实际生成的指令。
    • token默认有效期为24小时,若token超时,可在K8s管理节点通过如下命令进行重新生成。
      kubeadm token create --print-join-command

配置计算节点

  1. 可选:如果Kubernetes工作节点已经配置了http和https代理,需要删除代理。
    export -n http_proxy 
    export -n https_proxy 
    export -n no_proxy
  2. 计算节点加入集群。
    1. 在计算节点中执行以下命令以加入集群。
      kubeadm join 192.168.1.11:6443 --token a9020j.vnfgqk7n30p5d9z0 --discovery-token-ca-cert-hash sha256: c465651177b41c545fe20f8dc052b9661a8375afdeac7e7ecf52029fc66a506a

      该token命令可以用于24小时内计算节点加入集群。

      • 集群加入token是随机生成的,在搭建集群时需要使用实际生成的指令。
      • token默认有效期为24小时,若token超时,可在K8s管理节点通过如下命令进行重新生成。
        kubeadm token create --print-join-command
    2. 约等待1min后,在管理节点查看集群中加入的计算节点。
      kubectl get nodes

      预期结果示例:

      NAME       STATUS     ROLES    AGE   VERSION  
      master     NotReady   master   12h   v1.23.1  
      compute01   NotReady   <none>  11h   v1.23.1  
      compute02   NotReady   <none>  11h   v1.23.1
  3. 在管理节点和计算节点上查看kubelet服务状态。
    systemctl status kubelet

    预期结果示例:

添加Flannel网络插件

在管理节点添加Flannel网络插件,以解决各主机节点上Pod之间的网络通信问题。

  1. 下载Flannel网络插件配置文件。
    wget --no-check-certificate https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 
  2. 修改kube-flannel.yml文件以配置资源。
    1. 打开文件。
      vim kube-flannel.yml
    2. 按“i”进入编辑模式,在resources下修改Flannel网络插件使用的资源,请参考下图并根据实际情况配置。
              resources:
                requests:
                  cpu: "100m"
                  memory: "50Mi"
                limits:
                  cpu: "200m"
                  memory: "100Mi"

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  3. 安装Flannel插件。
    kubectl apply -f kube-flannel.yml
  4. 在管理节点查看节点状态。
    kubectl get nodes

    可以看到节点的状态变成了Ready。预期结果示例:

    NAME       STATUS     ROLES    AGE   VERSION  
    master     Ready   master   12h   v1.23.1  
    compute01   Ready   <none>  11h   v1.23.1  
    compute02   Ready   <none>  11h   v1.23.1
  5. 在管理节点查看各Pod状态。
    kubectl get pod -A

    命令返回中,READY显示为1/1时,表示Pod正常运行。

    图2 pod status
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词