昇腾社区首页
中文
注册

安装和配置Kubernetes

对于需要部署在集群中的物理机,都需要安装Kubernetes组件,用户需自主选择管理节点和计算节点。

安装Kubernetes

安装方式一(推荐):

  1. 安装Kubernetes,请参考Kubernetes官网进行安装。
    • 支持Kubernetes的版本为1.16.x~1.25.x,推荐使用1.19.x及以上版本。
    • 所有节点都需要安装Kubernetes。
  2. 使用kubeadm工具创建Kubernetes集群,安装kubeadm和创建kubernetes集群请参见Kubernetes官网中的使用Kubeadm创建集群章节。

    集群初始化过程如遇到问题,请参见《MindX DL 集群调度用户指南》的“参考 > FAQ > 安装时出现的故障 > kubernetes常见问题”章节

安装方式二:

此安装方式以阿里镜像源为例安装Kubernetes。

  1. 安装Kubernetes的kubectl、kubeadm和kubelet工具。

    请参考阿里Kubernetes镜像官网进行安装,请用户根据实际的系统架构选择对应的安装命令。

    • 如果更新源时报“Certificate verification failed: The certificate is NOT trusted”错误,解决方式如下所示。

      1中阿里镜像源设置为HTTP协议即可。

    • 如果出现“No match for argument: socat”或者“nothing provides socat needed by xxx”等回显信息,表示环境缺少socat库,解决方式如下所示。(其他库缺失也会有同样的回显,比如eatables、conntrak等)

      使用以下命令自行安装缺失的库。

      #以CentOS系统为例
      yum install -y socat
      #以Ubuntu系统为例
      apt-get install -y socat
  2. 执行以下命令查询部署Kubernetes需要的依赖和镜像,如图1所示。
    kubeadm config images list
    图1 所需依赖及镜像查询结果
    根据查询结果,用户需自行通过docker pull的方式依次进行安装,示例命令如下所示。
    docker pull k8s.gcr.io/kube-apiserver:v1.23.0
  3. 使用以下命令初始化Kubernetes集群,当出现如图2所示回显时,表示初始化成功。
    kubeadm init
    图2 Kubernetes集群初始化成功

    然后执行图2中的内容,如下所示:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
  4. 执行以下命令查看当前默认启动项状态是否正常,如图3所示,状态为Running即为正常。
    kubectl get pods -A
    图3 查看状态

重置Kubernetes设置

执行以下命令可以重置Kubernetes设置,回显如图4所示则表示重置成功。

kubeadm reset
图4 重置成功

重置成功后,用户需手动删除$HOME/.kube/config文件,确保Kubernetes的配置全部删除。

Kubernetes集群增加节点

待新增节点需满足以下要求:

  • 待新增节点已安装Kubernetes基本软件:kubectl、kubeadm和kubelet。
  • 已获取3中kubeadm初始化成功后得到的完整指令,如下所示。
    kubeadm join ip:port --token token \
            -discovery-token-ca-cert-hash sha256:ca-cert码
  1. 在待新增节点上执行3中kubeadm init初始化成功后的完整指令。
    kubeadm join ip:port --token token \
            -discovery-token-ca-cert-hash sha256:ca-cert码
    • 参数解释:
      • ip:port:管理节点上Kubernetes的IP和端口。
      • --token:节点加入的令牌。
      • -discovery-token-ca-cert-hash:加入集群的证书哈希值。

    token和ca-cert码的有效期为24小时,如果已过期,请使用以下命令创建。

    • 创建token
      kubeadm token create
    • 创建ca-cert码
      openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
  2. 使用以下命令查看节点信息,如图5所示,localhost.localdomain即为新增节点。
    图5 新增节点
    • 使用以下命令查询新增节点名称:
      hostname
    • 使用以下命令修改节点名称:
      hostname {新名称}
  3. 使用以下命令为新增节点附上accelerator=huawei-Ascend910标签。
    #kubectl label nodes {节点名称} accelerator=huawei-Ascend910
    kubectl label nodes localhost.localdomain accelerator=huawei-Ascend910
  4. 使用以下命令查看为新增节点附的accelerator=huawei-Ascend910标签,如图 accelerator=huawei-Ascend910标签所示,有accelerator=huawei-Ascend910字样则表示成功。
    kubectl get nodes –show-labels
    图6 accelerator=huawei-Ascend910标签