文档首页 > > 最佳实践> 使用AOS设计器快速部署容器集群

使用AOS设计器快速部署容器集群

分享
更新时间: 2020/02/11 GMT+08:00

容器集群是计算资源的集合,包含一组节点资源,容器运行在节点上。本章节将指导您使用AOS设计器快速部署容器集群,并在该集群中添加节点,为部署容器应用准备好所需的资源。

在此演练中,您将完成以下步骤:

  1. 了解基本概念:在操作本次之前,建议您先了解本次演练用到的各元素基本概念。
  2. 创建密钥对:新建一个密钥对,用于远程登录ECS的身份认证。若您已有密钥对,可跳过此步骤,无需多次创建。
  3. 添加并连接元素:首次打开AOS的设计器时,将从空白模板开始工作。本例中,我们将把VPC.VPC、VPC.Subnet、CCE.Cluster、CCE.NodePool拖放到画布中,并建立它们之间的关联关系。
  4. 配置模板参数:各元素之间的关系建立完成后,将用集成的编辑器为各元素添加参数,以便您可以在创建堆栈时指定输入值。
  5. 创建容器集群堆栈:通过编排好的模板,可创建容器集群。最终可新建“虚拟私有云VPC、子网、容器集群以及节点”
  6. 清除资源:为了避免您为不需要的服务付费,建议您删除堆栈,清理资源。

了解基本概念

  • 创建容器集群需要使用到以下元素,请了解一下基本概念:
    • VPC.VPC(虚拟私有云):虚拟私有云主要目的是构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。
    • VPC.Subnet(子网):VPC范围比较大,子网是为了在VPC内部做进一步的网络划分。子网是VPC的IP地址范围内的一个区段,其中可放置隔离的资源组。子网位于VPC内部
    • CCE.Cluster(容器集群):容器集群用于运行Docker容器应用,由一个或多个节点组成,容器运行在节点上。在创建容器应用前,您需要存在一个可用集群。
    • CCE.NodePool(节点):每一个节点对应一台弹性云服务器(ECS),容器应用运行在节点上。节点上运行着代理程序(kubelet),用于管理节点上运行的容器实例。当前一个NodePool元素代表一个节点。
  • 各元素的关联关系请参见下图:
    图1 各元素关联关系

    图1,各元素的关联关系如下:

    • 容器集群运行在虚拟私有云的某个子网中。
    • 容器集群包含一个或多个节点,在本例中,只包含了一个节点。
  • 您还需要了解“输入”“输出”参数:

    在配置好各元素的属性后,一般需要配置输入和输出参数。

    • 输入(input):编写模板属性时,有一些属性值会经常性的修改。例如,弹性云服务器的规格,若直接写在模板中,每次属性值变动就需要更改模板十分不便。此时可以在模板中将经常修改的值定义为输入参数(get_input),后期使用模板创建堆栈时,无需修改模板,直接在界面修改对应的值即可。
    • 输出(output):定义模板生成堆栈运行时的输出参数。例如,在创建云服务器时,最终需要获取云服务器的弹性IP,以便可以登录此服务器。类似这种需要获取的值,需配置为输出参数。

创建密钥对

在使用AOS创建之前,您需要新建一个密钥对,用于远程登录节点时身份认证。

若您已有密钥对,可跳过此步骤,无需多次创建。

  1. 登录华为云控制台
  2. 选择“计算 > 弹性云服务器”。
  3. 选择左侧导航中的“密钥对”,单击“创建密钥对”。
  4. 输入密钥对名称后,单击“确定”。
  5. 在弹出的对话框中,单击“确定”。

    请根据提示信息,查看并保存私钥。为保证安全,私钥只能下载一次,请妥善保管,否则将无法登录节点。

添加并连接元素

  1. 登录AOS控制台。
  2. 在左侧导航中,单击“设计器”。您可以根据图2添加并连接元素。

    图2 添加并连接元素

配置模板参数

  1. 鼠标单击画布中的myvpc元素,在属性窗口中会自动显示该元素的属性。

    请配置如下加粗字体内容。

    • 为方便参数可配置可修改,建议经常变动的值使用输入参数。get_input表示输入参数,get_input后面定义的值可以自定义。
    • 当配置的参数有误时,属性区域框中配错的一行参数前会出现,请修改属性配置,并不要离开当前属性页面,否则会将配置的参数丢失。
    node_templates:
      myvpc:
        type: HuaweiCloud.VPC.VPC
        properties:
          cidr:
            get_input: vpc-cidr
          name:
            get_input: vpc-name

    各属性解释如下:

    • cidr:虚拟私有云下可用子网范围。设置为输入参数。
    • name:自定义虚拟私有云名称。设置为输入参数。

  2. 鼠标单击画布中的mysubnet元素,在属性窗口中会自动显示该元素的属性。请配置如下加粗字体内容。

    node_templates:
      mysubnet:
        type: HuaweiCloud.VPC.Subnet
        properties:
          name: 
            get_input: subnet-name
          cidr: '192.168.1.0/24'
          dhcpEnable: true
          gateway: 192.168.1.1
          vpcId:
            get_reference: myvpc
          dnsList:
            - 114.114.114.115
            - 114.114.114.114
        requirements:
          - vpcId:
              node: myvpc
    各属性解释如下:
    • cidr:子网网段,需要在VPC的子网地址范围内。也可以设置为输入参数。
    • dhcpEnable:保持默认,是否为VPC的子网开启DHCP功能。
    • dnsList:可选参数,表示子网dns服务器地址的集合。如果想使用两个以上dns服务器,请使用该字段。
    • gateway:子网网关。
    • name:自定义子网名称,此处建议设置为输入参数。
    • vpcId:保持默认。在连线完成后,get_reference会自动生成,表示子网所在的VPC信息将通过“myvpc”动态获取得到。

  3. 鼠标单击画布中的mycluster元素,在属性窗口中会自动显示该元素的属性。

    为了便于 “集群规格”“可用区”等参数设为可设置状态,这里使用了输入参数get_input,input的参数名称可自定义。
    node_templates:
      mycluster:
        type: HuaweiCloud.CCE.Cluster
        properties:
          subnetId:
            get_reference: mysubnet
          flavor:
            get_input: clusterFlavor
          vpcId:
            get_reference: myvpc
          name:
            get_input: clusterName
          availabilityZone:
            get_input: availabilityZone

    各属性解释如下:

    • availabilityZone:子网所在区域,可以直接写值,或使用输入参数,为方便后续修改,建议设为输入参数。“get_input”后的参数值可自定义填写。
    • flavor:集群规格,为方便后续修改,建议设为输入参数。“get_input”后的参数值可自定义填写。
    • name:自定义集群名称。
    • subnetId:保持默认,subnetId信息将动态获取得到。
    • vpcId:保持默认,vpcId信息将动态获取得到。

  4. 鼠标单击画布中的mynode元素,在属性窗口中会自动显示该元素的属性。

    为了便于“节点规格”“登录密钥”设为可设置状态,这里使用了输入参数get_input,input的参数名称可自定义。

    node_templates:
      mynode:
        type: HuaweiCloud.CCE.NodePool
        properties:
          dataVolumes:
            - size: 100
              volumeType:
                get_input: nodeVolumeType
          name:
            get_input: nodeName
          instances: 1
          rootVolume:
            volumeType:
              get_input: dataVolumeType
            size: 
              get_input: dataVolumeSize
          flavor:
            get_input: nodeFlavor
          clusterId:
            get_reference: mycluster
          publicIp:
            eip:
              bandwidth:
                shareType:
                  get_input: shareType
                size:
                  get_input: bandwidthSize
              ipType:
                get_input: ipType
          sshKeyName:
            get_input: sshKey
        requirements:
          - clusterId:
              node: mycluster

    各属性解释如下:

    • clusterId:保持默认,clusterId信息将动态获取得到。
    • dataVolumes:数据盘,建议至少挂载一块数据盘。
    • flavor:节点规格。
    • instances:节点数量。
    • name:自定义节点名称。
    • publicIp:若节点需要被互联网访问,需要设置此参数,绑定弹性IP。
    • rootVolume:节点的磁盘类型和大小,保持默认即可。
    • sshKeyName:自定义登录节点的密钥名称。

  5. 鼠标单击画布的空白区域,属性窗口处会出现输入页签,单击“输入”页签,设置输入参数。

    这里设置的输入参数,都是和前面的步骤中设置的get_input参数一一对应的。

    inputs:
      vpc-cidr:
        description: 虚拟私有云下可用子网范围
        label: ''
        default: '192.168.0.0/16'
      vpc-name:
        description: 虚拟私有云名称
        default: aos-vpc
      subnet-name:
        description: 子网名称
        default: aos-subnet
      clusterFlavor:
        description: 集群规格
        default: cce.s1.small
      clusterName:
        description: 集群名称
        default: aos-cluster
      availabilityZone:
        description: 可用区
        default: cn-south-2b
      nodeVolumeType:
        description: 云服务器数据盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配
        default: SATA
      nodeName:
        description: 创建节点的名称
        default: aos-cce-node
      dataVolumeType:
        description: 系统盘类型
        default: SATA
      dataVolumeSize:
        description: 系统盘大小
        default: 40
      nodeFlavor:
        description: 容器节点的规格
        default: s3.large.2
      shareType:
        description: 弹性IP的共享类型
        default: PER
      bandwidthSize:
        description: 弹性IP的带宽
        default: 1
      ipType:
        description: 弹性IP的类型
        default: 5_bgp
      sshKey:
        description: 创建节点登录时使用的密钥对,请妥善保存
    

  6. 最后设置outputs,outputs是可选项,用于定义模板生成堆栈运行时的输出参数。在本例中,节点的弹性IP和端口号一般需要被其它组件获取使用的,所以设置弹性IP(即publicip)为输出参数。

    创建容器集群并添加节点一般需要输出的参数包括:

    • outputs中的参数,例如“cluster_id”“public_ip”这个名字可以自定义。
    • get_attribute表示可以从某个元素中自动获取对应的值,get_attribute后的参数,例如“my-cluster”需要和已定义好的元素名称保持一致,“mycluster”“mynode”后的值,例如clusterIdpublicIp需要和当前元素中的输出参数相匹配,不可自定义。
    {
        "outputs": {
            "cluster_id": {
                "description": "ID of created cluster",
                "value": {
                    "get_attribute": [
                        "mycluster",
                        "clusterId"
                    ]
                }
            },
            "public_ip": {
                "description": "EIP of created node",
                "value": {
                    "get_attribute": [
                        "mynode",
                        "publicIp"
                    ]
                }
            }
        }
    }

    各属性解释如下:

    • cluster_id:用get_attribute函数,表示从my-cluster元素中自动获取集群ID。
    • public_ip:用get_attribute函数,表示从my-node元素中自动获取节点的弹性IP。

  7. 单击,校验模板是否正确。在界面左侧“操作日志”窗口中若出现“校验模板成功”,表示模板正确。
  8. 单击,选择“我的模板”,输入模板名称和版本,单击“保存”

    • 模板名称:自定义模板名称,需确保全局唯一,例如设置为mycluster。
    • 版本:1.0,保持默认。

创建容器集群堆栈

  1. 单击设计器页面右上侧的,进入AOS控制台首页。
  2. 在左侧导航栏中,选择“我的模板”。在模板列表中可查看到保存成功的模板mycluster。
  3. 单击mycluster模板后的“创建堆栈”
  4. 设置堆栈信息。

    • 堆栈名称:输入堆栈名称,例如mycluster
    • 描述:可不填写。
    • 配置输入参数,如表1,其它参数可保持默认。
      表1 配置输入参数

      参数名称

      说明

      参数值

      sshKey

      登录节点的密钥对

      选择已创建好的密钥对。

  5. 单击“下一步”,查看堆栈信息,确认无误后,单击“创建堆栈”

    系统自动跳转到堆栈详情页面,可查看到当前堆栈为创建中。此处创建了虚拟私有云VPC、子网Subnet以及容器集群Cluster和节点Node。预计需要10分钟左右创建成功。

  6. 待堆栈状态为“正常”时,可查看到堆栈元素中已有四个云服务。虚拟私有云VPC、子网Subnet以及容器集群Cluster和节点Node已创建成功。
  7. 登录CCE控制台,可查看到已创建成功的集群和节点。

    1. 单击左侧导航的“资源管理 > 集群管理”,可查看到已创建成功的集群。
      图3 容器集群已创建成功
    2. 单击左侧导航的“资源管理 > 节点管理”,可查看到已经创建成功的节点。
      图4 节点已创建成功

清除资源

为了避免您为不需要的服务付费,建议您删除不必要的堆栈,清理资源。

  1. 登录AOS控制台。
  2. 在左侧导航栏中,单击“我的堆栈”。
  3. 在堆栈列表中,勾选mycluster堆栈,单击“删除堆栈”

    根据界面提示删除堆栈。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区