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

接入VNode(VNodectl工具)

如果您在線下IDC或者阿里云ECS上自建了Kubernetes集群,您需要在集群中部署虛擬節(jié)點(diǎn)(VNode)來使用ECI。為了能夠方便地接入和管理VNode,ECI提供了VNodectl命令行工具。本文為您介紹如何使用VNodectl工具自動(dòng)創(chuàng)建VNode,以便在自建Kubernetes集群中可以使用ECI。

前提條件

  • 已部署好Kubernetes集群,且集群的版本屬于1.13~1.30版本。

  • 如果您的Kubernetes集群部署在線下IDC,請(qǐng)確保已通過高速通道、智能接入網(wǎng)關(guān)或者VPN網(wǎng)關(guān)打通IDC和云上網(wǎng)絡(luò)。相關(guān)參考如下:

準(zhǔn)備工作

操作前,請(qǐng)準(zhǔn)備創(chuàng)建VNode所需的參數(shù)信息,并了解VNode所需的權(quán)限信息。需要準(zhǔn)備的參數(shù)如下表所示。

參數(shù)

描述

操作

地域(Region)

地域指的是物理的數(shù)據(jù)中心。請(qǐng)根據(jù)您以及您目標(biāo)用戶所在的地理位置,資源價(jià)格等因素選擇合適的地域。更多信息,請(qǐng)參見地域和可用區(qū)

ECI及其相關(guān)資源將創(chuàng)建在選擇的地域下。

您可以通過彈性容器實(shí)例控制臺(tái)或者調(diào)用DescribeRegions獲取ECI支持的地域信息。

專有網(wǎng)絡(luò)(VPC)

專有網(wǎng)絡(luò)是您基于阿里云創(chuàng)建的自定義私有網(wǎng)絡(luò),不同的專有網(wǎng)絡(luò)之間邏輯上徹底隔離。更多信息,請(qǐng)參見什么是專有網(wǎng)絡(luò)。

ECI及其相關(guān)資源將創(chuàng)建在您配置的專有網(wǎng)絡(luò)中。

說明

如果您的Kubernetes集群部署在線下IDC,請(qǐng)確保IDC網(wǎng)絡(luò)與該VPC網(wǎng)絡(luò)之間已實(shí)現(xiàn)網(wǎng)絡(luò)互通。

您可以在專有網(wǎng)絡(luò)控制臺(tái)專有網(wǎng)絡(luò)頁面創(chuàng)建并查看專有網(wǎng)絡(luò)。

交換機(jī)(vSwitch)

交換機(jī)是組成專有網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)設(shè)備。交換機(jī)可以連接不同的云資源。在專有網(wǎng)絡(luò)中創(chuàng)建ECI及其相關(guān)資源時(shí),需要指定交換機(jī)(支持指定多個(gè),系統(tǒng)將自動(dòng)選擇)。

您可以在專有網(wǎng)絡(luò)控制臺(tái)交換機(jī)頁面創(chuàng)建并查看交換機(jī),根據(jù)已選的VPC來選擇對(duì)應(yīng)的交換機(jī)。

安全組(Security Group)

安全組是一種虛擬防火墻,可以控制組內(nèi)資源的進(jìn)出流量,從而提高網(wǎng)絡(luò)安全性。更多信息,請(qǐng)參見安全組概述

ECI及其相關(guān)資源將加入到安全組中。

說明

推薦使用企業(yè)安全組,并添加以下入方向的安全組規(guī)則:

  • 允許VPC對(duì)應(yīng)網(wǎng)段訪問全部端口(1/65535)。

  • 允許K8s API Server對(duì)應(yīng)地址訪問VNode服務(wù)端口(10250和10255端口)。

您可以在ECS管理控制臺(tái)安全組頁面創(chuàng)建并查看安全組,根據(jù)已選的VPC來選擇對(duì)應(yīng)的安全組。

創(chuàng)建VNode時(shí),需要配置相關(guān)權(quán)限,包括原生K8s節(jié)點(diǎn)使用的標(biāo)準(zhǔn)權(quán)限,以及VNode所需的額外權(quán)限,具體如下表所示。

類型

權(quán)限

說明

標(biāo)準(zhǔn)權(quán)限

system:node

Node標(biāo)準(zhǔn)權(quán)限。

system:node-proxier

kube-proxy標(biāo)準(zhǔn)權(quán)限。

system:certificates.k8s.io:certificatesigningrequests:nodeclient

Node發(fā)起創(chuàng)建證書請(qǐng)求的權(quán)限。

system:certificates.k8s.io:certificatesigningrequests:selfnodeclient

Node基于已有證書發(fā)起創(chuàng)建證書請(qǐng)求的權(quán)限,即證書輪換權(quán)限。

額外權(quán)限

pods update和pods patch

更新Pod的Annotation。例如為Pod增加k8s.aliyun.com/eci-instance-id等Computed Annotation。

pvc update和pvc patch

更新PVC的Annotation。

endpoints create和endpoints update

選主保護(hù)。

1.13版本以上集群無需配置。

安裝VNodectl

操作前,您需要安裝VNodectl命令行工具。請(qǐng)根據(jù)自身環(huán)境獲取對(duì)應(yīng)的安裝包并安裝VNodectl。

操作系統(tǒng)

CPU架構(gòu)

安裝包獲取鏈接

macOS

AMD64

macOS_AMD64

ARM64

macOS_ARM64

Linux

AMD64

Linux_AMD64

ARM64

Linux_ARM64

Windows

AMD64

Windows_AMD64

ARM64

Windows_ARM64

建議您將VNodectl安裝在Kubernetes集群的master節(jié)點(diǎn)上,操作步驟如下:

  1. 連接集群。

  2. 下載安裝包。

    wget https://eci-docs.oss-cn-beijing.aliyuncs.com/vnode/vnodectl_0.0.5-beta_linux_amd64.tar.gz -O vnodectl.tar.gz 
  3. 解壓安裝包。

    tar xvf vnodectl.tar.gz 
  4. 復(fù)制vnodectl到指定目錄。

    cp vnodectl /usr/local/bin/vnode
說明
  • vnode命令均支持添加--dry進(jìn)行客戶端校驗(yàn)。

  • 執(zhí)行vnode命令的過程中,如果遇到API版本兼容的錯(cuò)誤,請(qǐng)?zhí)砑?code data-tag="code" code-type="xCode" class="code">--kubernetes-version明確指定集群的K8s版本。

配置集群

VNode需要使用kubeconfig來接入集群。因此,創(chuàng)建VNode前需要為VNode簽發(fā)證書(即kubeconfig)。配置方式分為TLS Bootstrap方式和ServiceAccount方式。

說明
  • 如果有安全性要求,建議采用TLS Bootstrap方式。采用該方式時(shí),將自動(dòng)部署vnode-approver組件。vnode-approver組件用于簽發(fā)Vnode提交的CSR請(qǐng)求,目前已開源至GitHub。更多信息,請(qǐng)參見vnode-approver。

  • ServiceAccount方式不支持證書輪換。簽發(fā)證書時(shí)需確保token有足夠的有效期(或者設(shè)置為不過期),防止因證書過期導(dǎo)致VNode無法正常工作。

TLS Bootstrap

  1. 生成kubeconfig。

    1. 準(zhǔn)備集群相關(guān)配置信息。

      配置參數(shù)

      說明

      獲取方式

      示例

      kubeconfig

      用于配置VNode在集群中所需要的權(quán)限。

      默認(rèn)路徑為~/.kube/config。您也可以使用其它kubeconfig。

      /path/to/kubeconfig

      集群CA

      用于生成VNode連接到集群所需要的kubeconfig。可直接使用具有admin權(quán)限的kubeconfig中的CA,建議使用啟動(dòng)apiserver時(shí)傳入的CA。

      執(zhí)行ps aux | grep apiserver命令,從返回信息中獲取--client-ca-file的值。

      /path/to/ca.crt

      apiserver地址

      用于集群通信、認(rèn)證、鑒權(quán)等。

      打印kubeconfig,從返回信息中可獲取apiserver地址。

      https://8.134.XX.XX:6443

      tokenId

      用于生成TLS Bootstrap token,創(chuàng)建Bootstrap token secret。

      自定義,6位數(shù)字字母組合字符串。

      eci123

      tokenSecret

      自定義,16位數(shù)字字母組合字符串。

      eci1233333333333

    2. 部署vnode-approver組件。

      vnode addon enable vnode-approver
    3. 配置集群生成kubeconfig。

      請(qǐng)根據(jù)實(shí)際集群配置信息替換命令中的參數(shù)值。示例如下:

      vnode cluster setup --kubeconfig  /path/to/kubeconfig  --bootstrap --bootstrap-token-id <token-id> --bootstrap-token-secret <token-secret> --apiserver-address https://8.134.XX.XX:6443 --cluster-ca-path  /path/to/ca.crt

      如果集群版本低于1.14,命令中請(qǐng)附帶集群版本,示例如下:

      vnode cluster setup --kubernetes-version v1.13.0 --kubeconfig  /path/to/kubeconfig --bootstrap --bootstrap-token-id eci123 --bootstrap-token-secret eci1233333333333  --apiserver-address https://8.134.XX.XX:6443 --cluster-ca-path /etc/kubernetes/pki/ca.crt
  2. 校驗(yàn)集群是否具備接入VNode的條件。

    vnode cluster validate

    預(yù)期返回如下,kubeconfig默認(rèn)保存在~/.vnode/deploy/kubeconfig

    kubeconfig can't be empty

ServiceAccount

  1. 生成kubeconfig。

    1. 準(zhǔn)備集群相關(guān)配置信息。

      配置參數(shù)

      說明

      獲取方式

      示例

      kubeconfig

      用于配置VNode在集群中所需要的權(quán)限。

      默認(rèn)路徑為~/.kube/config。您也可以使用其它kubeconfig。

      /path/to/kubeconfig

      集群CA

      用于生成 VNode連接到集群所需要的kubeconfig??芍苯邮褂镁哂衋dmin權(quán)限的kubeconfig中的CA,建議使用啟動(dòng)apiserver時(shí)傳入的CA。

      執(zhí)行ps aux | grep apiserver命令,從返回信息中獲取--client-ca-file的值。

      /path/to/ca.crt

      apiserver地址

      用于集群通信、認(rèn)證、鑒權(quán)等。

      打印kubeconfig,從返回信息中可獲取apiserver地址。

      https://8.134.XX.XX:6443

    2. 配置集群生成kubeconfig。

      請(qǐng)根據(jù)實(shí)際集群配置信息替換命令中的參數(shù)值。示例如下:

      vnode cluster setup --kubeconfig /path/to/kubeconfig --apiserver-address https://8.134.XX.XX:6443 --cluster-ca-path /path/to/ca.crt

      如果集群版本低于1.14,命令中請(qǐng)附帶集群版本,示例如下:

      vnode cluster setup --kubernetes-version v1.13.0 --kubeconfig /path/to/kubeconfig --apiserver-address https://8.134.XX.XX:6443 --cluster-ca-path /etc/kubernetes/pki/ca.crt 
  2. 校驗(yàn)集群是否具備接入VNode的條件。

    vnode cluster validate

    預(yù)期返回如下,kubeconfig默認(rèn)保存在~/.vnode/deploy/kubeconfig

    kubeconfig can't be empty

配置~/.vnode/config文件

~/.vnode/config文件包含了VNode的配置信息,VNodectl運(yùn)行的時(shí)候會(huì)讀取該文件,因此在創(chuàng)建VNode前需要先配置好該文件。

  1. 打印VNode運(yùn)行所需的配置信息。

    vnode config default

    配置信息中contexts下各字段說明如下:

    字段

    是否必填

    說明

    name

    context名稱。

    vnode-name

    VNode名稱,建議不配置,由系統(tǒng)自動(dòng)生成可保證唯一性

    region-id

    VNode所屬地域。請(qǐng)參考準(zhǔn)備工作選擇。

    access-key-id

    調(diào)用阿里云API時(shí)需要使用AccessKey完成身份驗(yàn)證。AccessKey包括AccessKey ID和AccessKey Secret,需要一起使用。更多信息,請(qǐng)參見創(chuàng)建AccessKey

    access-key-secret

    vswitch-id

    VNode所屬交換機(jī),可配置多個(gè)。請(qǐng)參考準(zhǔn)備工作創(chuàng)建。

    security-group-id

    VNode所屬安全組。請(qǐng)參考準(zhǔn)備工作創(chuàng)建。

    resource-group-id

    VNode所屬資源組。

    資源組是在阿里云賬號(hào)下進(jìn)行資源分組管理的一種機(jī)制。每個(gè)賬號(hào)有一個(gè)默認(rèn)資源組。更多信息,請(qǐng)參見資源管理

    如果沒有指定資源組,則VNode將加入到默認(rèn)資源組中。

    kubeconfig

    VNode接入集群時(shí)所需的kubeconfig文件路徑。完成配置集群操作后會(huì)自動(dòng)生成,默認(rèn)路徑為~/.vnode/deploy/kubeconfig。

    taints

    VNode綁定的污點(diǎn)信息。

    tags

    VNode綁定的標(biāo)簽信息。

    標(biāo)簽可用于賬單分賬管理,為VNode綁定自定義標(biāo)簽后,在查看費(fèi)用分析時(shí),可以通過該標(biāo)簽篩選出VNode收取的實(shí)例費(fèi)用。更多信息,請(qǐng)參見基于標(biāo)簽查詢分賬賬單。

    vnode1

  2. 將配置信息重定向到指定文件(~/.vnode/config),并配置各字段。

    vnode config default > ~/.vnode/config
    vim ~/.vnode/config

    請(qǐng)根據(jù)自身需求修改~/.vnode/config文件內(nèi)容,以下示例僅配置了必填字段。

    kind: vnode
    contexts:
        - name: default
          region-id: cn-guangzhou
          access-key-id: LTAI5tJbBkHcHBUmuP7C****
          access-key-secret: 5PlpKJT6sgLcD4f9y5pACNDbEg****
          vswitch-id: vsw-7xv2yk45qp5etidgf****
          security-group-id: sg-7xv5tcch4kjdr65t****
          kubeconfig: ~/.vnode/deploy/kubeconfig
    current-context: default
  3. 查看并確認(rèn)當(dāng)前VNode運(yùn)行讀取的配置信息。

    vnode config
  4. 切換context,使VNode運(yùn)行加載context下的配置。

    vnode config set-context <context-name>

創(chuàng)建VNode

  1. 創(chuàng)建一個(gè)VNode。

    vnode create
    說明

    創(chuàng)建時(shí)會(huì)采用~/.vnode/config文件中的配置進(jìn)行創(chuàng)建,支持添加參數(shù)來配置customResources、clusterDNS和clusterDomain。更多信息,請(qǐng)參見管理VNode

    返回示例如下,其中VirtualNodeId的值即為生成的VNode的ID。

    {"RequestId":"AB772F9D-2FEF-5BFD-AAFB-DA3444851F29","VirtualNodeId":"vnd-7xvetkyase7gb62u****"}
  2. 查看VNode狀態(tài)。

    vnode list

    返回示例如下,當(dāng)STATUS為Ready時(shí),表示VNode創(chuàng)建成功。

    VNODE ID                    VNODE NAME                                   CREATED          STATUS    SCHEDULABLE ZONES
    vnd-7xvetkyase7gb62u****    vnode-cn-guangzhou-a-7xvetkyase7gb62u****    2 minutes ago    Ready     cn-guangzhou-a
  3. 查看節(jié)點(diǎn)信息。

    kubectl get node

    返回示例如下,可以看到集群中已接入VNode。

    NAME                                    STATUS     ROLES                  AGE    VERSION
    cn-guangzhou.vnd-7xvetkyase7gb62u****   Ready      agent                  174m   v1.20.6
    vnode-test001                           Ready      control-plane,master   23h    v1.20.6
    vnode-test002                           Ready      <none>                 22h    v1.20.6

禁止DaemonSet調(diào)度到VNode

由于VNode不是真實(shí)節(jié)點(diǎn),因此無法運(yùn)行DaemonSet。創(chuàng)建VNode后,您需要修改kube-proxy的DaemonSet,配置nodeAffinity來禁止DaemonSet調(diào)度到VNode。

  1. 修改DaemonSet配置。

    kubectl -n kube-system edit ds kube-proxy
  2. 配置nodeAffinity。

    在spec>template>spec下添加以下YAML:

    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: type
              operator: NotIn
              values:
              - virtual-kubelet

調(diào)度Pod到VNode

創(chuàng)建VNode后,您可以通過以下方式將Pod調(diào)度到VNode上,以使用ECI來運(yùn)行Pod。

  • 手動(dòng)調(diào)度

    通過配置nodeSelector和tolerations、指定nodeName的方式,可以手動(dòng)將Pod調(diào)度到VNode。具體操作,請(qǐng)參見將Pod調(diào)度到VNode。

  • 自動(dòng)調(diào)度

    部署eci-profile組件后,可以自定義配置Selector,將滿足條件的Pod自動(dòng)調(diào)度到VNode。具體操作,請(qǐng)參見使用eci-profile調(diào)度Pod到VNode。

相關(guān)文檔