昇腾社区首页
中文
注册

(可选)导入证书和KubeConfig

使用前必读

导入工具cert-importer在组件的软件包中。

导入工具说明

  • 导入文件的说明请参考表1,详细命令参数请参考表4
    表1 组件导入文件说明

    组件

    导入文件类型

    导入命令示例

    说明

    Resilience Controller

    连接K8s的KubeConfig文件

    ./cert-importer -kubeConfig={kubeFile} -cpt={component}

    由于K8s自带的ServerAccount的token文件会挂载到物理机上,有暴露风险,可通过外部导入加密KubeConfig文件替换ServerAccount进行安全加固。

  • 工具支持的操作如表2
    表2 操作说明

    操作

    说明

    新增

    导入KubeConfig等文件。

    更新

    导入新的KubeConfig等文件,替换旧的文件。

    重新导入后,需要重启业务组件才生效。请提前规划证书的有效期,有效期要匹配产品生命周期,不能过长或者过短,避免业务组件重启导致业务中断。

  • 默认情况下,导入成功后,工具会自动删除KubeConfig授权文件,用户可通过-n参数停用自动删除功能。如果不自动删除,用户应妥善保管相关配置文件,如果决定不再使用相关文件,请立即删除,防止意外泄露。
  • 导入的文件会被重新加密并存入“/etc/mindx-dl”目录中,具体参考表3
  • 如果从3.0.RC3及以后版本降级到3.0.RC3之前的旧版本,需在手动删除“/etc/mindx-dl/”目录下的文件后,重新使用旧版cert-importer工具导入。
  • 导入工具加密需要系统有足够的熵池(random pool)。如果熵池不够,程序可能阻塞,可以安装haveged组件来进行补熵。

    安装命令可参考:

    • 类似CentOS操作系统执行yum install haveged -y命令进行安装,并执行systemctl start haveged命令启动haveged组件。
    • 类似Ubuntu操作系统执行apt install haveged -y命令进行安装,并执行systemctl start haveged命令启动haveged组件。

导入KubeConfig文件

  1. 进入mindxdl-deploy仓库,根据mindxdl-deploy开源仓版本说明进入版本对应分支,获取“conf”目录下的createKubeConfig.sh文件,并上传到K8s管理节点。
  2. 在createKubeConfig.sh文件所在路径,执行以下命令生成KubeConfig文件。
    bash createKubeConfig.sh  https://<masterIP>:6443 

    若执行上述命令出错,可执行如下命令之后重试。

    unset LD_LIBRARY_PATH
  3. K8s管理节点“/etc/kubernetes/mindxdl”目录下,Resilience Controller组件的KubeConfig配置文件放置到组件的安装节点任意目录下(如“/etc/kubernetes/mindxdl”)。
  4. 进入Resilience Controller安装包解压路径,将lib文件夹设置到当前窗口的环境变量LD_LIBRARY_PATH中,不需要持久化或继承给其他用户(证书导入工具需要配置自带的加密组件相关的so包路径)。
    1. 执行以下命令,将环境变量进行备份。
      export LD_LIBRARY_PATH_BAK=${LD_LIBRARY_PATH}
    2. 执行以下命令,将lib文件夹设置到当前环境变量LD_LIBRARY_PATH中。
      export LD_LIBRARY_PATH=`pwd`/lib/:${LD_LIBRARY_PATH}
  5. 执行以下命令,为Resilience Controller组件导入KubeConfig文件。
    ./cert-importer -kubeConfig=/etc/kubernetes/mindxdl/resilience-controller-cfg.conf  -cpt=rc
    回显示例如下,请以实际回显为准,出现以下字段表示导入成功。
    1
    2
    3
    4
    encrypt kubeConfig successfully
    start to write data to disk
    [OP]import kubeConfig successfully
    change owner and set file mode successfully
    
    • 已经导入了KubeConfig配置文件,但是组件还是出现连接K8s异常的场景,可以参见集群调度组件连接K8s异常章节进行处理。
    • 导入证书时,导入工具cert-importer会自动创建/var/log/mindx-dl/cert-importer目录,目录权限750,属主为root:root。
  6. 执行以下命令,将备份的环境变量还原。
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH_BAK}
表3 集群调度组件证书配置文件表

组件

证书等配置文件路径

目录及其文件属主

配置文件说明

集群调度组件证书相关根目录

/etc/mindx-dl/

hwMindX:hwMindX

kmc_primary_store/master.ks:自动生成的主密钥,请勿删除。

.config/backup.ks:自动生成的备份密钥,请勿删除。

Resilience Controller

/etc/mindx-dl/resilience-controller/

.config/config6:导入的加密K8s KubeConfig文件,连接K8s使用。

.config6:导入的加密K8s KubeConfig文件备份。

表4 导入工具参数说明

参数

类型

默认值

说明

-kubeConfig

string

待导入的KubeConfig文件的路径。

-cpt

string

rc

导入证书的组件名称为rc,表示Resilience Controller

-encryptAlgorithm

int

9

私钥口令加密算法:

  • 8:AES128GCM
  • 9:AES256GCM
说明:

无效参数值会被重置为默认值。

-version

bool

false

查询Resilience Controller版本号。

-n

bool

false

导入成功后是否删除KubeConfig文件。

  • true:导入成功后不删除KubeConfig文件。
  • false:导入成功后删除KubeConfig文件。

-logFile

string

/var/log/mindx-dl/cert-importer/cert-importer.log

工具运行日志文件。

说明:

转储后文件的命名格式为:cert-importer-触发转储的时间.log,如:cert-importer-2023-10-07T03-38-24.402.log。

-updateMk

bool

false

是否更新KMC加密组件的主密钥。

  • true:更新主密钥。
  • false:不更新主密钥。

-updateRk

bool

false

是否更新KMC加密组件的根密钥。

  • true:更新根密钥。
  • false:不更新根密钥。

-h或者-help

显示帮助信息。