使用编排模板创建应用

通过应用中心创建应用可以直观地查看所有Kubernetes资源的部署状态与变化。根据数据源的来源不同,创建应用的方式也不同。本文介绍如何使用编排模板在应用中心创建应用。

前提条件

已创建Kubernetes集群。具体操作,请参见创建Kubernetes托管版集群

操作步骤

  1. 登录容器服务管理控制台

  2. 为Template资源授权。

    1. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

    2. 集群信息页面上方单击集群资源页签。

    3. 集群资源页签单击Worker RAM角色右侧的KubernetesWorkerRole-****

      K8sWorkerRole链接
    4. 在RAM访问控制台的KubernetesWorkerRole-****页面,单击权限管理页签,然后单击k8sWorkerRolePolicy-****权限策略名称。

    5. 权限策略页面,单击策略内容页签,然后单击修改策略内容

    6. 修改策略内容面板添加Template相关权限后,单击确定

      {
          "Action": [
              "cs:CreateTemplate",
              "cs:DescribeTemplates",
              "cs:DescribeTemplateAttribute",
              "cs:UpdateTemplate",
              "cs:DeleteTemplate"
          ],
          "Resource": [
              "*"
          ],
          "Effect": "Allow"
      }
  3. 在容器服务管理控制台左上角集群名称左侧单击返回图标。

  4. 在控制台左侧导航栏,选择多集群 > 应用中心

  5. 应用中心页面单击创建应用

  6. 应用来源配置向导页面配置参数。

    1. 安装应用发布组件区域选择集群,然后单击开始安装

      说明

      仅首次安装应用需要执行此步骤。

    2. 应用来源区域单击YAML模板

    3. 单击下一步

  7. 应用配置配置向导页面中设置参数。

    1. 设置应用名称应用描述

    2. 设置模板,您可以选择已有模板或者新建模板, 本文以新建模板为例。

      1. 单击新建模板页签,然后单击右上角的通过YAML添加

      2. 将以下内容复制到文本框中,然后单击确定

        apiVersion: apps/v1
        kind: Deployment
        metadata:
          name: demo
          labels:
            app: demo
        spec:
          minReadySeconds: 5
          revisionHistoryLimit: 5
          progressDeadlineSeconds: 60
          strategy:
            rollingUpdate:
              maxUnavailable: 1
            type: RollingUpdate
          selector:
            matchLabels:
              app: demo
          template:
            metadata:
              annotations:
                prometheus.io/scrape: "true"
                prometheus.io/port: "9797"
              labels:
                app: demo
            spec:
              containers:
              - name: demo
                image: registry.cn-hangzhou.aliyuncs.com/acs/rollouts-demo:red
                imagePullPolicy: IfNotPresent
                ports:
                - name: http
                  containerPort: 8080
                  protocol: TCP
                readinessProbe:
                  tcpSocket:
                    port: 8080
                  initialDelaySeconds: 5
                  timeoutSeconds: 5
                resources:
                  limits:
                    cpu: 2000m
                    memory: 512Mi
                  requests:
                    cpu: 100m
                    memory: 64Mi
        ---
        apiVersion: v1
        kind: Service
        metadata:
          name: demo-svc
        spec:
          selector:
            app: demo
          ports:
            - protocol: TCP
              port: 80
              targetPort: 8080
        ---
        apiVersion: networking.k8s.io/v1
        kind: Ingress
        metadata:
          name: demo
          labels:
            app: demo
        spec:
          rules:
            - host: app.demo.example.com
              http:
                paths:
                - path: /
                  pathType: Prefix
                  backend:
                    service:
                      name: demo-svc
                      port:
                        number: 80
    3. 单击下一步

  8. 发布配置配置向导页面中设置参数。

    1. 发布配置区域选择发布方式,可选全量发布灰度发布

      说明

      第一次发布应用时只能选择全量发布,后续对应用进行更新迭代时,可以选择全量发布灰度发布

    2. 可选集群区域单击集群左侧的添加,在目标集群区域可以看到选择的集群,然后在目标集群区域选择应用要发布的命名空间

      说明

      如果没有开通公网访问的集群,需要为API Server绑定EIP,以开启公网访问能力。具体操作,请参见控制集群API Server的公网访问能力

    3. 单击开始发布

    4. 发布确认对话框单击确定

      发布日志配置向导中可以看到发布应用的进度。

  9. 发布日志配置向导页面中单击完成

结果验证

  1. 获取应用的端点。
    1. 登录容器服务管理控制台

    2. 在控制台左侧导航栏,单击集群

    3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

    4. 在集群管理页左侧导航栏,选择网络 > 路由

    5. 路由页面查看demo的端点。
  2. hosts文件输入以下内容。
    <端点> app.demo.example.com 
  3. 在浏览器中访问app.demo.example.com

    浏览器显示以下页面,说明应用部署成功。red