本文介绍如何在容器服务控制台上部署多语言微服务应用。

在容器服务Kubernetes版中创建多语言应用

  1. 登录容器服务控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群右侧操作列下的应用管理
  4. 在集群管理页面左侧导航栏选择工作负载 > 无状态,选择集群的命名空间,单击使用YAML创建资源
  5. 创建页面选择示例模板,并在模板区域编辑创建应用的YAML文件。

    部署应用的YAML模板如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: details-v1
      labels:
        app: details
        version: v1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: details
          version: v1
      template:
        metadata:
          labels:
            app: details
            version: v1
        spec:
          serviceAccountName: bookinfo-details
          containers:
          - name: details
            image: docker.io/istio/examples-bookinfo-details-v1:1.16.2
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
            securityContext:
              runAsUser: 1000
    说明 您可以自定义命名YAML模板中的示例值。
    • name:表示应用的名称。
    • labels:包含对应的应用名app,以及版本号version
    您可在无状态页面查看所创建的应用。

为应用开启服务访问

如果需要应用能够提供对外访问的能力,可以在创建好的多语言应用YAML模板中添加如下示例代码:

apiVersion: v1
kind: Service
metadata:
  name: details
  labels:
    app: details
    service: details
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: details

YAML模板参数说明如下:

参数 描述
metadata 表示该节点元数据。
name 表示对外提供访问的应用名称。
spec 表示该节点配置信息。
ports 表示配置该服务端口号和协议类型。
port 表示对外提供访问的服务端口号。
name 表示提供服务的协议类型。目前支持的协议类型有TCP、UDP、gRPC、gRPC-Web、HTTP、HTTP_Proxy、HTTP2、HTTPS、TLS、Mongo、Redis、MySQL。
注意 name配置中的协议类型名称需小写。
selector 表示配置应用标签。

为应用开启服务鉴权

如果需要使应用具备服务鉴权能力,可以在YAML模板中配置serviceAccountName,示例代码如下:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-details
  labels:
    account: details
说明 YAML模板中的name为应用的服务名称。