日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

自建Kubernetes集群通過ACK Virtual Node接入云上Serverless算力

ACK Virtual Node實(shí)現(xiàn)Kubernetes與云上Serverless算力的無縫連接。本文介紹如何在數(shù)據(jù)中心Kubernetes部署ACK Virtual Node組件。

ACK Virtual Node介紹

ACK Virtual Node實(shí)現(xiàn)Kubernetes與云上Serverless算力的無縫連接,使自建Kubernetes集群能夠輕松獲得云上的彈性算力,包括CPU和GPU。通過ACK Virtual Node,您可以在自建Kubernetes集群創(chuàng)建Serverless Pod,利用云上算力高效應(yīng)對業(yè)務(wù)增長和流量高峰。

image
說明
  • 數(shù)據(jù)中心和阿里云VPC需使用專線互聯(lián)。

  • 文檔中涉及{region}表示數(shù)據(jù)中心要訪問彈性容器實(shí)例ECI所在地域的Region ID,例如張家口地域?yàn)閏n-zhangjiakou。更多關(guān)于彈性容器實(shí)例ECI的地域信息,請參見服務(wù)接入點(diǎn)

  • 對于每個Serverless Pod,ACK Virtual Node會創(chuàng)建云上彈性容器實(shí)例,無需額外維護(hù)節(jié)點(diǎn)。

前提條件

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

  • 已為使用ACK Virtual Node Helm Chart的阿里云RAM用戶或角色創(chuàng)建AccessKey,同時授予相應(yīng)的調(diào)用ECI OpenAPI權(quán)限,具體操作請參見RAM子賬號授權(quán)。授權(quán)信息如下:

展開查看授權(quán)信息

{
    "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. 根據(jù)以下示例創(chuàng)建my-values.yaml,并保存到本地目錄。

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

    參數(shù)說明:

    參數(shù)名稱

    參數(shù)說明

    是否必選

    示例值

    virtualNode.image.repository

    virtual-node鏡像倉庫地址。

    必選

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

    virtualNode.image.tag

    virtual-node鏡像Tag。

    必選

    v2.12.1

    env.ECI_REGION

    彈性容器實(shí)例所在地域ID。

    必選

    cn-zhangjiakou

    env.ECI_VSWITCH

    彈性容器實(shí)例所在交換機(jī)ID,多個交換機(jī)使用英文半角逗號分隔。根據(jù)Serverless Pod數(shù)量為交換機(jī)預(yù)留足夠的IP地址。

    必選

    vsw-8vb***

    env.ECI_SECURITY_GROUP

    彈性容器實(shí)例所在安全組ID。

    必選

    sg-8vb***

    env.ECI_ACCESS_KEY

    云賬號AccessKeyId。確保該云賬號有調(diào)用ECI API的權(quán)限。

    必選

    LTAI5t***

    env.ECI_SECRET_KEY

    云賬號AccessKeySecret。確保該云賬號有調(diào)用ECI API的權(quán)限。

    必選

    99K***

    env.KUBERNETES_APISERVER_HOST

    API Server地址,如有需要指定API Server地址,請?jiān)O(shè)置。

    可選

    192.168.0.1

    env.KUBERNETES_APISERVER_PORT

    API Server內(nèi)網(wǎng)地址端口。

    可選

    6443

    env.ECI_VPC

    彈性容器實(shí)例所在VPC ID。

    可選

    vpc-8vb***

    env.ALIYUN_RESOURCEGROUP_ID

    彈性容器實(shí)例歸屬的資源組ID。

    可選

    rg-acf***

  2. 執(zhí)行以下命令,添加Helm Repo。

    helm repo add aliyunhub https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
  3. 執(zhí)行以下命令,安裝ack-virtual-node

    helm install ack-virtual-node aliyunhub/ack-virtual-node --namespace kube-system --values my-values.yaml
  4. 執(zhí)行以下命令,查看應(yīng)用狀態(tài)。

    kubectl  get no |grep virtual-kubelet

    預(yù)期輸出:

    virtual-kubelet-cn-zhangjiakou-c   Ready    agent    10d   v1.18.8

將Pod調(diào)度到云上Serverless算力運(yùn)行

在自建Kubernetes集群上,通過以下三種方式可將Pod調(diào)度到ECI上運(yùn)行。

方式一:配置Pod標(biāo)簽

  1. 執(zhí)行以下命令部署指定Pod標(biāo)簽的測試用例。

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx
      name: nginx-deployment-pod-label
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            alibabacloud.com/eci: 'true'   # 指定Pod標(biāo)簽使用云上Serverless算力運(yùn)行
            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
    EOF
  2. 執(zhí)行以下命令,查看應(yīng)用狀態(tài)。

     kubectl get pod -owide | grep nginx-deployment-pod-label

    預(yù)期輸出:

    nginx-deployment-pod-label-6575548559-7p9hf     1/1     Running   0          33s    192.168.XX.XXX    virtual-kubelet-cn-zhangjiakou-c   <none>           <none>
    nginx-deployment-pod-label-6575548559-tztm6     1/1     Running   0          33s    192.168.XX.XXX    virtual-kubelet-cn-zhangjiakou-c   <none>           <none>

方式二:配置命名空間標(biāo)簽

  1. 執(zhí)行以下命令,創(chuàng)建名為vk的命名空間。

    kubectl create ns vk
  2. 執(zhí)行以下命令為命名空間添加alibabacloud.com/eci=true標(biāo)簽。

    kubectl label namespace vk alibabacloud.com/eci=true
  3. 執(zhí)行以下命令將測試用例部署到指定命名空間。

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx
      name: nginx-deployment-ns-label
      namespace: vk
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            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
    EOF
  4. 執(zhí)行以下命令,查看應(yīng)用狀態(tài)。

    kubectl get po -nvk -owide |grep  nginx-deployment-ns-label

    預(yù)期輸出:

    nginx-deployment-ns-label-7bc784448c-5llgb   1/1     Running   0          30s   192.168.XX.XXX   virtual-kubelet-cn-zhangjiakou-c   <none>           <none>
    nginx-deployment-ns-label-7bc784448c-8ns9q   1/1     Running   0          30s   192.168.XX.XXX   virtual-kubelet-cn-zhangjiakou-c   <none>           <none>

方式三:指定節(jié)點(diǎn)名稱

  1. 執(zhí)行以下命令將測試用例部署到指定節(jié)點(diǎn)。

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx
      name: nginx-deployment-node-name
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          nodeName: virtual-kubelet-cn-zhangjiakou-c             # 指定ack-virtual-node的nodeName
          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
    EOF
  2. 執(zhí)行以下命令,查看應(yīng)用狀態(tài)。

    kubectl get pod -owide |grep nginx-deployment-node-name

    預(yù)期輸出:

    nginx-deployment-node-name-864dffd59f-jq58n     1/1     Running   0          23s     192.168.XX.XXX     virtual-kubelet-cn-zhangjiakou-c   <none>           <none>
    nginx-deployment-node-name-864dffd59f-r87zp     1/1     Running   0          23s     192.168.XX.XXX     virtual-kubelet-cn-zhangjiakou-c   <none>           <none>

相關(guān)文檔