导入HTTPS证书和KubeConfig文件
导入工具cert-importer在各组件的软件包中。使用之前请先查看导入工具说明,根据实际情况选择对应的导入步骤。导入HTTPS证书后,证书的过期告警功能需要由集成方实现。同时,建议用户定期对证书进行更新。如果不需要导入证书,可跳过此章节。
- 导入HTTPS证书参见导入HTTPS证书。
- 导入KubeConfig文件参见导入KubeConfig文件。
导入工具说明
- 组件及对应导入文件的说明请参考表1,详细命令参数请参考表6。
表1 组件导入文件说明 组件
导入文件类型
导入命令示例
说明
NPU-Exporter
HTTPS证书
./cert-importer -certFile={certFile} -keyFile={keyFile} -caFile={caFile} -crlFile={crlFile} -cpt={component}
- 对外提供了API接口,默认启用HTTPS服务,需要导入证书。用户可以自行修改组件启动参数,通过“-enableHTTP=true”开启HTTP服务,由此带来的安全风险需用户自行承担(仅npu-exporter支持该参数)。
- 只支持X509V3版本的证书,根证书的秘钥用法必须包含证书签名。
HCCL-Controller
连接K8s的KubeConfig文件
./cert-importer -kubeConfig={kubeFile} -cpt={component}
- 由于K8s自带的ServerAccount的token文件会挂载到物理机上,有暴露风险,可通过外部导入加密KubeConfig文件替换ServerAccount进行安全加固。
- Ascend Device Plugin以二进制启动,无访问K8s的权限,因此需要通过外部导入加密KubeConfig文件来授权。
NodeD
Resilience-Controller
Ascend Device Plugin
- 工具支持的操作如下表。
表2 操作说明 操作
说明
新增
导入证书,私钥或KubeConfig等文件。
更新
导入新的证书,私钥或KubeConfig等文件,替换旧的文件。
重新导入后,需要重启业务组件才生效.请提前规划证书的有效期,有效期要匹配产品生命周期,不能过长或者过短,避免业务组件重启导致业务中断。
- 默认情况下,私钥证书导入成功后,工具会自动删除私钥和KubeConfig授权文件,用户可通过-n参数停用自动删除功能。如果不自动删除,用户应妥善保管相关配置文件,如果一旦决定不再使用相关文件,请立即删除私钥和加密密文等敏感信息,防止意外泄露。
- 导入的证书等文件会被重新加密并存入“/etc/mindx-dl”目录中,具体参考表5。
- 如果从3.0.RC3及以后版本降级到3.0.RC3之前的旧版本,需在手动删除“/etc/mindx-dl/”目录下的文件后,重新使用旧版cert-importer工具导入证书。
- 证书导入工具加密需要系统有足够的熵池(random pool)。如果熵池不够,程序可能阻塞,可以安装haveged组件来进行补熵。
- 类似CentOS操作系统:yum install haveged -y
- 类似Ubuntu操作系统:apt install haveged -y
导入HTTPS证书
- 使用root用户登录各个对应组件需要安装的服务器组件安装位置。
- 进入组件安装包解压路径,将lib文件夹设置到当前窗口的环境变量LD_LIBRARY_PATH中,不需要持久化或继承给其他用户(证书导入工具需要配置自带的加密组件相关的so包路径)。
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`/lib/
- 使用安装包解压路径下的cert-importer工具导入证书,导入证书命令示例如下,详细命令参数请参考表6。
./cert-importer -certFile=/xxx/server.crt -keyFile=/xxx/server.key -caFile=/xxx/ca.crt -crlFile=/xxx/server.crl -cpt=ne
表3 证书导入场景说明 导入证书场景名称
认证方式
说明
服务证书(-certFile)、服务私钥(-keyFile)
单向认证
- 加密过的私钥在导入时要求输入私钥解密口令
- 安装NPU-Exporter的每个节点默认均需要使用证书。若无证书,则不能启动。
服务证书(-certFile)、服务私钥(-keyFile)、对端根证书(-caFile)、离线的证书吊销列表文件(-crlFile,可选参数)
双向认证
导入KubeConfig文件
- 生成KubeConfig配置文件:从MindX-Deploy仓库上拉取“createKubeConfig.sh”文件到K8s管理节点,执行以下命令生成各组件的KubeConfig文件。
bash createKubeConfig.sh https://<masterIP>:6443
如执行上述命令出错,可执行如下命令之后重试。
unset LD_LIBRARY_PATH
- 将K8s管理节点“/etc/kubernetes/mindxdl”目录下各组件的kubeconfig配置文件放置到组件的安装节点“/etc/kubernetes/mindxdl”目录下。
- 进入各节点组件安装包解压路径,将lib文件夹设置到当前窗口的环境变量LD_LIBRARY_PATH中,不需要持久化或继承给其他用户(证书导入工具需要配置自带的加密组件相关的so包路径)。
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`/lib/
- 在各节点导入各组件的KubeConfig配置文件参考命令如下,详细命令参数请参考表6。
表4 各组件导入KubeConfig文件命令 组件
导入KubeConfig文件命令
HCCL-Controller
./cert-importer -kubeConfig=/etc/kubernetes/mindxdl/hccl-controller-cfg.conf -cpt=hc
NodeD
./cert-importer -kubeConfig=/etc/kubernetes/mindxdl/noded-cfg.conf -cpt=nd
Ascend Device Plugin
./cert-importer -kubeConfig=/etc/kubernetes/mindxdl/device-plugin-cfg.conf -cpt=dp
Resilience-Controller
./cert-importer -kubeConfig=/etc/kubernetes/mindxdl/resilience-controller-cfg.conf -cpt=rc
组件 |
证书等配置文件路径 |
目录及其文件属主 |
配置文件说明 |
---|---|---|---|
MindX DL证书相关根目录 |
/etc/mindx-dl/ |
hwMindX:hwMindX |
kmc_primary_store/master.ks:自动生成的主材料,请勿删除。 .config/backup.ks:自动生成的备份材料,请勿删除。 |
NPU-Exporter |
/etc/mindx-dl/npu-exporter/ |
.config/config1:导入加密私钥文件,删除后无法启用HTTPS。 .config/config2:导入的服务证书文件,删除后无法启用HTTPS。 .config/config3:导入的对端根证书文件,删除或不存在时启用单向认证,否则启用双向认证。 .config/config4:导入的证书吊销列表文件,启用双向认证后,程序启用客户端吊销列表检查。 .config/config5:自动生成的加密私钥的口令密文文件。 .conf:自动生成的加密私钥的口令密文文件备份。 .config1:导入加密私钥文件备份。 .config2:导入的服务证书文件备份。 .config3:导入的对端根证书文件备份。 .config4:导入的证书吊销列表文件备份。 |
|
HCCL_Controller |
/etc/mindx-dl/hccl-controller/ |
.config/config6: 导入的加密k8s KubeConfig文件,连接K8s使用 .config6: 导入的加密k8s KubeConfig文件备份。 |
|
NodeD |
/etc/mindx-dl/noded/ |
||
Resilience-Controller |
/etc/mindx-dl/resilience-controller/ |
||
Ascend Device Plugin |
/etc/mindx-dl/device-plugin/ |
参数 |
类型 |
默认值 |
说明 |
---|---|---|---|
-keyFile |
string |
无 |
服务私钥文件路径,必须有值。 |
-certFile |
string |
无 |
服务证书文件路径,必须有值。 |
-crlFile |
string |
无 |
证书吊销文件路径,可选。 |
-caFile |
string |
无 |
对端根证书文件路径,单向认证时不需要导入,双向认证需要导入。 |
-kubeConfig |
string |
无 |
导入kubeConfig文件的路径 |
-cpt |
string |
ne |
导入证书的组件名称,ne ->NPU-Exporter,hc->HCCL-Controller,nd->NodeD,dp->Ascend Device Plugin,rc->Resilience-Controller) |
-encryptAlgorithm |
int |
9 |
私钥口令加密算法:
|
-version |
bool |
false |
打印程序版本号。 |
-n |
bool |
false |
默认导入成功后会删除私钥和kubeconfig等敏感文件,设为true可停用自动删除功能 |
-logFile |
string |
/var/log/mindx-dl/cert-importer/cert-importer.log |
工具运行日志路径 |
-h |
无 |
不涉及 |
显示帮助信息 |