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

通過(guò)虛擬節(jié)點(diǎn)將Pod調(diào)度到ECI上運(yùn)行

當(dāng)您需要在短時(shí)間內(nèi)快速創(chuàng)建大量Pod時(shí),ECS節(jié)點(diǎn)擴(kuò)容速度可能無(wú)法滿足要求,而預(yù)留額外的ECS節(jié)點(diǎn)又會(huì)產(chǎn)生資源浪費(fèi)。借助ACK虛擬節(jié)點(diǎn)(Virtual Node)可以將Pod快速地調(diào)度到彈性容器實(shí)例ECI上運(yùn)行,且無(wú)需購(gòu)買(mǎi)和管理ECS節(jié)點(diǎn)。本文主要介紹如何在注冊(cè)集群中將Pod調(diào)度到ECI上運(yùn)行。

工作原理

阿里云彈性容器實(shí)例ECI(Elastic Container Instance)是面向容器設(shè)計(jì)的無(wú)服務(wù)器彈性計(jì)算服務(wù),提供了免運(yùn)維、強(qiáng)隔離、能快速啟動(dòng)的容器運(yùn)行環(huán)境。使用ECI時(shí),您無(wú)需購(gòu)買(mǎi)和管理底層ECS服務(wù)器,可以更加關(guān)注容器應(yīng)用而非底層基礎(chǔ)設(shè)施的維護(hù)工作。您可按需創(chuàng)建ECI,僅為容器配置的資源付費(fèi)(按量按秒計(jì)費(fèi))。

通常,您的ACK集群會(huì)有至少一組ECS節(jié)點(diǎn)池,創(chuàng)建Pod時(shí),背后是將Pod調(diào)度到ECS節(jié)點(diǎn)上運(yùn)行,這種架構(gòu)能很好地應(yīng)對(duì)流量穩(wěn)定的業(yè)務(wù)。如果您的業(yè)務(wù)有不易提前預(yù)測(cè)的瞬時(shí)波峰,盡管ACK支持彈性伸縮,但ECS節(jié)點(diǎn)池?cái)U(kuò)容時(shí),ECS實(shí)例的創(chuàng)建和啟動(dòng)本身會(huì)有一定的額外耗時(shí)。借助虛擬節(jié)點(diǎn)Virtual Node,您可以直接將Pod調(diào)度到ECI上運(yùn)行,省去節(jié)點(diǎn)創(chuàng)建時(shí)間,避免產(chǎn)生閑置節(jié)點(diǎn)資源,降低成本。

image

前提條件

步驟一:為ack-virtual-node組件配置RAM權(quán)限

通過(guò)onectl配置

  1. 在本地安裝配置onectl。具體操作,請(qǐng)參見(jiàn)通過(guò)onectl管理注冊(cè)集群。

  2. 執(zhí)行以下命令,為ack-virtual-node組件配置RAM權(quán)限。

    onectl ram-user grant --addon ack-virtual-node

    預(yù)期輸出:

    Ram policy ack-one-registered-cluster-policy-ack-virtual-node granted to ram user ack-one-user-ce313528c3 successfully.

通過(guò)控制臺(tái)配置

在注冊(cè)集群安裝組件之前,您需要在接入集群中設(shè)置AccessKey用來(lái)訪問(wèn)云服務(wù)的權(quán)限。設(shè)置AccessKey之前,您需要?jiǎng)?chuàng)建RAM用戶并為其添加訪問(wèn)相關(guān)云資源的權(quán)限。

  1. 創(chuàng)建RAM用戶。具體操作,請(qǐng)參見(jiàn)創(chuàng)建RAM用戶。

  2. 可選:創(chuàng)建自定義權(quán)限策略。具體操作,請(qǐng)參見(jiàn)創(chuàng)建自定義權(quán)限策略。

    展開(kāi)查看自定義策略模板

    {
        "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"
            }
        ]
    }
  3. 為RAM用戶添加權(quán)限。具體操作,請(qǐng)參見(jiàn)為RAM用戶授權(quán)

    可選擇自定義權(quán)限策略或AliyunECIFullAccess策略為RAM用戶授權(quán)。

  4. 為RAM用戶創(chuàng)建AccessKey。具體操作,請(qǐng)參見(jiàn)獲取AccessKey

  5. 使用AccessKey在注冊(cè)集群中創(chuàng)建名為alibaba-addon-secret的Secret資源。

    安裝ack-virtual-node組件時(shí)將自動(dòng)引用此AccessKey訪問(wèn)對(duì)應(yīng)的云服務(wù)資源。

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'
    說(shuō)明

    <your access key id><your access key secret>為上一步獲取的AccessKey信息。

步驟二:安裝ack-virtual-node組件

通過(guò)onectl安裝

執(zhí)行以下命令,安裝ack-virtual-node組件。

onectl addon install ack-virtual-node

預(yù)期輸出:

Addon ack-virtual-node, version **** installed.

通過(guò)控制臺(tái)安裝

  1. 登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。

  2. 集群列表頁(yè)面,單擊目標(biāo)集群名稱(chēng),然后在左側(cè)導(dǎo)航欄,選擇運(yùn)維管理 > 組件管理

  3. 單擊其他頁(yè)簽,在ack-virtual-node組件區(qū)域單擊安裝。

    提示對(duì)話框中單擊確定。這時(shí)會(huì)以集群默認(rèn)虛擬交換機(jī)和安全組作為ack-virtual-node的初始ECI配置參數(shù)。具體操作,請(qǐng)參見(jiàn)相關(guān)操作。

步驟三:將Pod調(diào)度到ECI上運(yùn)行

為集群部署了ack-virtual-node組件后,您可以借助虛擬節(jié)點(diǎn)將Pod調(diào)度到ECI上。本小節(jié)介紹了在注冊(cè)集群中將Pod調(diào)度到ECI上的兩種常見(jiàn)方式。調(diào)度前需要確保Virtual node的狀態(tài)為Ready。

  1. 執(zhí)行以下命令,查看Virtual node狀態(tài)。

    kubectl  get no |grep virtual-kubelet

    預(yù)期輸出:

    virtual-kubelet-cn-hangzhou-b   Ready    agent                  18d   v1.20.11-aliyun.1

    從預(yù)期輸出可知,當(dāng)前Virtual node狀態(tài)為Ready。

  2. 通過(guò)以下三種方式可將Pod調(diào)度到ECI上運(yùn)行。

    方式一:配置Pod標(biāo)簽(集群版本需大于1.16)

    將Pod添加標(biāo)簽alibabacloud.com/eci=true,Pod將以ECI方式運(yùn)行,其節(jié)點(diǎn)是虛擬節(jié)點(diǎn),示例如下:

    1. 執(zhí)行以下命令給Pod添加標(biāo)簽。

    2. kubectl run nginx --image nginx -l alibabacloud.com/eci=true
    3. 執(zhí)行以下命令查看Pod。

    4. kubectl get pod -o wide|grep virtual-kubelet
    5. 預(yù)期輸出:

    6. nginx-7fc9f746b6-r4xgx     0/1     ContainerCreating   0          20s   192.168.XX.XX   virtual-kubelet        <none>           <none>

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

    將Pod所在的命名空間添加標(biāo)簽alibabacloud.com/eci=true,Pod將以ECI方式運(yùn)行,其節(jié)點(diǎn)是虛擬節(jié)點(diǎn),示例如下:

    1. 執(zhí)行以下命令創(chuàng)建虛擬節(jié)點(diǎn)。

    2. kubectl create ns vk
    3. 執(zhí)行以下命令將Pod所在的命名空間添加標(biāo)簽。

    4. kubectl label namespace vk alibabacloud.com/eci=true
    5. 執(zhí)行以下命令將命名空間中的Pod調(diào)度到虛擬節(jié)點(diǎn)上。

    6. kubectl -n vk run nginx --image nginx
    7. 執(zhí)行以下命令查看Pod。

    8. kubectl -n vk get pod -o wide|grep virtual-kubelet
    9. 預(yù)期輸出:

    10. nginx-6f489b847d-vgj4d      1/1     Running             0          1m   192.168.XX.XX   virtual-kubelet        <none>           <none>

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

    指定Pod調(diào)度到虛擬節(jié)點(diǎn),添加 nodeName: virtual-kubelet-cn-shanghai-k,Pod將以ECI方式運(yùn)行,其節(jié)點(diǎn)是虛擬節(jié)點(diǎn),示例如下:

    1. 使用以下內(nèi)容,創(chuàng)建nginx-deployment.yaml。

    2. apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
      kind: Deployment
      metadata:
        name: nginx-deployment-basic
        labels:
          app: nginx
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
            nodeName: virtual-kubelet-cn-shanghai-k             # 指定vk的nodeName
            containers:
            - name: nginx
              image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
              ports:
              - containerPort: 80
              resources:
                limits:
                  cpu: "500m"
    3. 執(zhí)行以下命令,創(chuàng)建應(yīng)用。

    4. kubectl apply -f nginx-deployment.yaml
    5. 執(zhí)行以下命令查看Pod。

    6. kubectl  get pod -o wide|grep virtual-kubelet
    7. 預(yù)期輸出:

    8. nginx-6f489b847d-XXX      1/1     Running             0          1m   192.168.XX.XX   virtual-kubelet        <none>           <none>
      nginx-6f489b847d-XXX      1/1     Running             0          1m   192.168.XX.XX   virtual-kubelet        <none>           <none>

相關(guān)操作

修改ECI交換機(jī)配置

您可以修改ECI Pod所在的虛擬交換機(jī)。建議配置多個(gè)虛擬交換機(jī)支持多可用區(qū),當(dāng)單個(gè)可用區(qū)庫(kù)存不足時(shí),Controller會(huì)選擇另外一個(gè)可用區(qū)創(chuàng)建ECI Pod。

通過(guò)如下命令修改ECI交換機(jī)相關(guān)信息:

kubectl edit configmap eci-profile -n kube-system

配置示例如下:

data:
  enableClusterIp: "true"
  enableHybridMode: "false"
  enablePrivateZone: "false"
  securityGroupId: sg-2zeeyaaxlkq9sppl****
  selectors: ""
  vSwitchIds: vsw-2ze23nqzig8inprou****,vsw-2ze94pjtfuj9vaymf****     # ECI Pod所屬交換機(jī)。可配置多個(gè),用半角逗號(hào)間隔。
  vpcId: vpc-2zeghwzptn5zii0w7****

更多關(guān)于eci-profile配置的詳細(xì)信息,請(qǐng)參見(jiàn)配置eci-profile

刪除虛擬節(jié)點(diǎn)

  1. 在注冊(cè)集群中卸載ack-virtual-node組件。

    通過(guò)onectl卸載

    執(zhí)行以下命令,卸載組件。

    onectl addon uninstall ack-virtual-node

    預(yù)期輸出:

    Addon ack-virtual-node uninstalled.

    通過(guò)控制臺(tái)卸載

    組件管理頁(yè)面卸載ack-virtual-node組件即可。

  2. 通過(guò)命令kubectl delete node <node name>刪除相關(guān)虛擬節(jié)點(diǎn)。

    說(shuō)明

    卸載ack-virtual-node組件后,集群中已創(chuàng)建的ECI Pod并不會(huì)被刪除。