文档

数据中心Kubernetes部署ACK Virtual Node Helm Chart指南

更新时间:

ACK Virtual Node实现了Kubernetes与弹性容器实例ECI的无缝连接。本文介绍如何在数据中心Kubernetes部署ACK Virtual Node组件。

说明

文档中涉及{region}表示数据中心要访问弹性容器实例ECI所在地域的Region ID,例如张家口地域为cn-zhangjiakou。更多关于弹性容器实例ECI的地域信息,请参见服务接入点

前提条件

  • 已完成Kubernetes集群的部署,推荐Kubernetes版本为1.18及以上。

  • 已为使用ACK Virtual Node Helm Chart的阿里云RAM用户或角色创建AccessKey,同时授予相应的调用ECI OpenAPI权限,具体操作请参见RAM子账号授权。授权信息如下:

展开查看授权信息

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "eci:CreateContainerGroup",
                "eci:DeleteContainerGroup",
                "eci:DescribeContainerGroups",
                "eci:DescribeContainerGroupStatus",
                "eci:DescribeContainerGroupEvents",
                "eci:DescribeContainerLog",
                "eci:UpdateContainerGroup",
                "eci:UpdateContainerGroupByTemplate",
                "eci:CreateContainerGroupFromTemplate",
                "eci:RestartContainerGroup",
                "eci:ExportContainerGroupTemplate",
                "eci:DescribeContainerGroupMetric",
                "eci:DescribeMultiContainerGroupMetric",
                "eci:ExecContainerCommand",
                "eci:CreateImageCache",
                "eci:DescribeImageCaches",
                "eci:DeleteImageCache",
                "vpc:DescribeVSwitches"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}

安装步骤

  1. 根据以下示例创建my-values.yaml,并保存到本地目录。

    virtualNode:
      image:
        repository: registry-{Region}.ack.aliyuncs.com/acs/virtual-nodes-eci
        tag: v2.11.6
    env:
      ECI_REGION: cn-zhangjiakou
      ECI_VSWITCH: vsw-8vb***
      ECI_SECURITY_GROUP: sg-8vb***
      ECI_ACCESS_KEY: LTAI5t***
      ECI_SECRET_KEY: 99K***

    参数说明:

    参数名称

    参数说明

    示例值

    virtualNode.image.repository

    virtual-node镜像仓库地址。

    registry-cn-heyuan.ack.aliyuncs.com/acs/virtual-nodes-eci

    virtualNode.image.tag

    virtual-node镜像Tag。

    v2.11.6

    env.ALIYUN_CLUSTERID

    集群ID,直接使用默认值即可。

    __ACK_CLUSTER_ID__

    env.ECI_REGION

    ECI实例所在地域ID。

    cn-zhangjiakou

    env.ECI_VSWITCH

    ECI实例所在交换机ID。

    vsw-8vb***

    env.ECI_SECURITY_GROUP

    ECI实例所在安全组ID。

    sg-8vb***

    env.ECI_ACCESS_KEY

    云账号AccessKeyId。确保该云账号有调用ECI API的权限。

    LTAI5t***

    env.ECI_SECRET_KEY

    云账号AccessKeySecret。确保该云账号有调用ECI API的权限。

    99K***

    env.KUBERNETES_APISERVER_HOST

    API Server内网地址。

    192.168.0.1

    env.KUBERNETES_APISERVER_PORT

    API Server内网地址端口。

    6443

    env.ECI_VPC

    ECI实例所在VPC ID。当使用PrivateZone的时候,该参数必填。

    vpc-8vb***

    env.ALIYUN_RESOURCEGROUP_ID

    资源组ID。

    rg-acf***

  2. 执行以下命令,添加Helm Repo。

    helm repo add aliyunhub https://aliacs-app-catalog.oss-{Region}.aliyuncs.com/charts-incubator/
  3. 执行以下命令,安装ack-virtual-node

    helm install ack-virtual-node aliyunhub/ack-virtual-node --namespace kube-system --values my-values.yaml
  4. 使用以下YAML示例创建测试用例,验证组件是否安装成功。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx
      name: nginx-deployment-vk
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            alibabacloud.com/eci: 'true'   # deploy to eci
            app: nginx
        spec:
          containers:
            - image: 'registry.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2'
              imagePullPolicy: IfNotPresent
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP
              resources:
                limits:
                  cpu: 500m
  5. 查看应用状态。

    image

相关文档