MindIE MS服务端可以采用镜像方式部署在Kubernetes的Deployment管理的容器中,以下操作步骤指导用户如何完成MindIE MS服务端镜像的制作。
不建议用户直接在物理机上部署MindIE MS服务端,通过Kubernetes集群集成部署的方式可实现进程故障恢复,增强可靠性。
以下操作对路径没有要求,用户自行选择路径进行操作,这里以/home/{用户名称}/package路径为例。
cd /home/{用户名称}/package
chmod +x Ascend-mindie_{version}_linux-aarch64.run
./Ascend-mindie_{version}_linux-aarch64.run --extract=mindie
./mindie/Ascend-mindie-service_{version}_linux-aarch64.run --install-path=$PWD
使用以下命令打开ms_server.json文件。
vi mindie-service/latest/conf/ms_server.json
配置以下参数:
k8s_apiserver_ip:配置为Kubernetes管理节点的物理机IP地址。
docker pull ubuntu:22.04
docker images | grep ubuntu
cd mindie-service/latest export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib mkdir -p -m 700 security/msserver mkdir -p -m 700 security/mindieclient mkdir -p -m 700 ./security/kubeclient cp -r ./bin ./security/kubeclient mkdir -p -m 700 ./security/kubeclient/security/ca mkdir -p -m 700 ./security/kubeclient/security/certs mkdir -p -m 700 ./security/kubeclient/security/keys mkdir -p -m 700 ./security/kubeclient/security/pass cp -r ./security/kubeclient/* ./security/msserver cp -r ./security/kubeclient/* ./security/mindieclient # 可选,为保证通信安全,建议选择。导入MS Deployer服务端与MindIE Server通信的证书 python3 ./scripts/config_mindie_server_tls_cert.py ./security/mindieclient import_ca {CA文件路径} python3 ./scripts/config_mindie_server_tls_cert.py ./security/mindieclient import_cert {证书文件路径} {加密私钥文件路径} #必须,导入MS Deployer服务端证书 export KUBE_CA_CERT_PATH=/etc/kubernetes/pki/ca.crt #Kubernetes根CA证书文件路径 cp $KUBE_CA_CERT_PATH ./security/msserver/security/ca/ca.pem chmod 400 ./security/msserver/security/ca/ca.pem mkdir -p msserver_chain cat /home/{用户名称}/cas/msserver/cert.pem /home/{用户名称}/cas/mindiems/cert.pem > ./msserver_chain/cert.pem #/home/{用户名称}/cas/msserver/cert.pem:MindIE MS服务端证书文件路径;/home/{用户名称}/cas/mindiems/cert.pem:中间CA证书文件路径 chmod 400 ./msserver_chain/cert.pem python3 ./scripts/config_mindie_server_tls_cert.py ./security/msserver import_cert ./msserver_chain/cert.pem /home/{用户名称}/cas/msserver/cert.key.pem #/home/{用户名称}/cas/msserver/cert.key.pem:MindIE MS服务端私钥文件路径 rm -rf msserver_chain # 可选,为保证通信安全,建议选择。导入MS Deployer服务端与kube API-Server通信的证书 cp $KUBE_CA_CERT_PATH ./security/kubeclient/security/ca/ca.pem chmod 400 ./security/kubeclient/security/ca/ca.pem mkdir -p kubeclient_chian cat /home/{用户名称}/cas/kubeclient/cert.pem /home/{用户名称}/cas/mindiems/cert.pem > ./kubeclient_chian/cert.pem #/home/{用户名称}/cas/kubeclient/cert.pem:MindIE MS服务端与kube API-Server通信的客户端证书文件路径;/home/{用户名称}/cas/mindiems/cert.pem:中间CA证书文件路径 chmod 400 ./kubeclient_chian/cert.pem python3 ./scripts/config_mindie_server_tls_cert.py ./security/kubeclient import_cert ./kubeclient_chian/cert.pem /home/{用户名称}/cas/kubeclient/cert.key.pem #/home/cas/kubeclient/cert.key.pem:MindIE MS服务端与kube API-Server通信的客户端私钥文件路径 rm -rf kubeclient_chian cd ../..
以下为制作非root用户权限的MindIE MS服务端镜像,出于安全考虑,不建议用户制作root用户权限的MindIE MS服务端镜像。
FROM ubuntu:22.04 ARG USER_GROUP={用户群组} ARG USER={用户名} ARG UID={用户ID} ARG USER_HOME_DIR=/home/${USER} RUN useradd -d ${USER_HOME_DIR} -u ${UID} -m -s /usr/sbin/nologin ${USER} &&\ usermod root -s /usr/sbin/nologin COPY ./mindie-service /home/${USER}/mindie-service RUN rm -rf /home/${USER}/mindie-service/latest/security ARG MIES_INSTALL_PATH=/home/${USER}/mindie-service/latest ENV LD_LIBRARY_PATH=${MIES_INSTALL_PATH}/lib:$LD_LIBRARY_PATH ENV HSECEASY_PATH=${MIES_INSTALL_PATH}/lib RUN chown -R ${USER}:${USER_GROUP} ${MIES_INSTALL_PATH} USER ${USER}
参数解释:
chown -R ${UID}:${UID} ./mindie-service/latest/security
docker build --no-cache -t {镜像名称}:{镜像版本} ./