昇腾社区首页
中文
注册

创建Deployment和Service配置文件

用户需自行编写与Kubernetes交互的yaml或者json文件,用于部署MindIE MS服务端的Deployment和创建外部端口映射Deployment容器内部端口的Service。

创建MindIE MS服务端的Deployment配置文件

用户需自行编写与Kubernetes交互的yaml文件(例:ms_server_deployment.yaml),用于部署MindIE MS服务端的Deployment,样例如下所示(格式必须和样例保持一致),部分参数请参考表1自行修改。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ms-server
  namespace: default
  labels:
    app: ms-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ms-server
  template:
    metadata:
      labels:
        app: ms-server
    spec:
      nodeSelector:
        masterselector: dls-master-node     #MindIE MS服务端需部署在Kubernetes管理节点上,节点标签必须选择为masterselector: dls-master-node
      containers:
        - image: {镜像名称}:{镜像版本}
          imagePullPolicy: IfNotPresent
          name: mindie-ms
          securityContext:
            allowPrivilegeEscalation: false
            readOnlyRootFilesystem: true
            runAsUser: {UID}
            runAsGroup: {UID}
            capabilities:
              drop: ["ALL"]
            seccompProfile:
              type: RuntimeDefault
          volumeMounts:
          - name: dir1
            mountPath: 容器日志路径
          - name: dir2                                                #容器内业务持久化数据文件路径
            mountPath: 容器证书路径
          - name: dir3
            mountPath: /home/{容器内用户名}/ms_server.json     #容器内ms_server配置文件路径
          - name: dir4
            mountPath: 业务持久化数据文件路径
          command: ["bin/bash", "-c", "cd /home/{容器内用户名} && ./ms_server ms_server.json"]
          env:
          - name: MINDIE_MS_SERVER_IP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
          resources:
            requests:
              memory: "512Mi"
              cpu: "4000m"
            limits:
              memory: "1024Mi"
              cpu: "4000m"
      volumes:
      - name: dir1
        hostPath:
          path: 日志路径
      - name: dir2
        hostPath:
          path: 证书路径
      - name: dir3
        hostPath:
          path: /$home/package2/ms_server.json    #定义好的ms_server.json路径可供用户在容器外修改
          type: Directory
      - name: dir4
        hostPath:
          path: 业务持久化数据文件路径
表1 Deployment部分配置参数说明

参数

类型

说明

name

String

必填。

服务名称。

namespace

String

必填。

服务所属的命名空间。

image

String

必填。

内容和用户自定义的镜像名称和镜像版本一致,制作MindIE MS服务端镜像中Dockerfile已创建好的镜像。

runAsUser

Int

必填。

容器用户ID,和Dockerfile的UID一致。

runAsGroup

Int

必填。

容器主组ID,和Dockerfile的UID一致。

volumeMounts

List

选填。

用户需要挂载的容器路径(mountPath),需要与volumes参数中的name一一对应进行挂载。 日志路径挂载容器路径固定为/var/log/mindiems/。

volumes

List

选填。

用户需要挂载物理机路径(hostpath),需要与volumeMounts参数中的name一一对应进行挂载。

用户自定义挂载的路径,主要包含服务端写入的日志路径和如需安全通信所需的MindIE MS服务端证书路径(以上路径需是物理机路径且真实存在)。

dir3是用户定义好的ms_server.json路径可供用户外部修改,并挂载进容器和ms_server在同容器目录下。

dir4是status状态文件路径,持久化保存业务数据,需和表1中的ms_status_file参数保持一致。需要保证挂载

command

List

必填。

启动容器的运行指令。根据用户实际使用场景,填入真实且可以正常启动MindIE MS服务的命令。

  • /home/{容器内用户名}:与6中的/home/{容器内用户名}/一致。
  • ms_server.json:启动服务配置文件,请参见表1进行配置。

创建映射到Pod端口的Service配置文件

用户需自行编写可与Kubernetes交互的json文件(例:ms_server_service.json),用于创建外部端口映射Deployment容器内部端口的Service,样例如下所示(格式必须和样例保持一致),部分参数请参考表2自行修改。
{
    "kind": "Service",
    "apiVersion": "v1",
    "metadata":{
        "labels":{
            "app": "ms-server"
        },
        "name": "ms-server",
        "namespace": "default"
    },
    "spec":{
        "type": "NodePort",
        "ports":[
            {
            "port": 9789,
            "targetPort": 9789,
            "nodePort": 31008
            }
        ],
        "selector":{
            "app": "ms-server"
        }
    }
}
表2 Service部分配置参数说明

参数

类型

说明

name

String

必填。

Service名称,可与表1中name参数值一致。

namespace

String

必填。

Service命名空间,必须与表1中namespace参数一致。

targetPort

Int

必填。

MindIE MS服务端使用的端口,取值范围:[1024,65535]。

targetPort和port一致。

nodePort

Int

必填。

Service对外开放的端口,用于和外部MindIE MS客户端连接,取值范围30000-32767。