全部產品
Search
文件中心

Elastic Container Instance:在容器內擷取中繼資料

更新時間:Aug 02, 2024

ECI執行個體的中繼資料可以提供關於ECI執行個體及其容器的資訊用於管理和使用容器,例如名稱、ID等基本資料,以及IP地址、網卡等網路資訊等。本文介紹如何在容器內擷取中繼資料,將ECI執行個體資訊和容器Meta資料呈現給運行中的容器。

方式一:通過MetaServer訪問中繼資料

  1. 串連容器。具體操作,請參見串連ECI執行個體

  2. 訪問中繼資料。

    說明

    如果容器環境沒有安裝curl,請先安裝curl。

    curl http://100.100.100.200/latest/meta-data/<metadata>

    <metadata>請替換為具體要查詢的執行個體中繼資料。例如執行以下命令擷取執行個體ID。

    curl http://100.100.100.200/latest/meta-data/instance-id

    ECI執行個體目前能擷取的基本執行個體中繼資料項如下表所示:

    執行個體中繼資料項

    說明

    /dns-conf/nameservers

    執行個體的DNS配置。

    /eipv4

    執行個體的Elastic IP Address(IPv4類型)。

    /hostname

    執行個體的主機名稱,對應ContainerGroupName。

    /instance-id

    執行個體ID。

    /mac

    執行個體的MAC地址。

    /network/interfaces/

    網卡的MAC地址清單。

    /network/interfaces/macs/[mac]/network-interface-id

    網卡的標識ID,其中[mac]參數需要替換為執行個體MAC地址。

    /network/interfaces/macs/[mac]/netmask

    網卡對應的子網路遮罩。

    /network/interfaces/macs/[mac]/vswitch-cidr-block

    網卡所屬的虛擬交換器IPv4 CIDR段。

    /network/interfaces/macs/[mac]/vpc-cidr-block

    網卡所屬的VPC IPv4 CIDR段。

    /network/interfaces/macs/[mac]/private-ipv4s

    網卡分配的私網IPv4地址清單。

    /network/interfaces/macs/[mac]/vpc-ipv6-cidr-blocks

    網卡所屬的VPC IPv6 CIDR段,僅支援已配置了IPv6的VPC類型執行個體。

    /network/interfaces/macs/[mac]/vswitch-id

    網卡所屬安全性群組的虛擬交換器ID。

    /network/interfaces/macs/[mac]/vpc-id

    網卡所屬安全性群組的VPC ID。

    /network/interfaces/macs/[mac]/primary-ip-address

    網卡主私人IP地址。

    /network/interfaces/macs/[mac]/gateway

    網卡對應的IPv4網關地址。

    /instance/max-netbw-egress

    執行個體規格的出方向內網最大頻寬。單位:Kbit/s。

    /instance/max-netbw-ingerss

    執行個體規格的入方向內網最大頻寬。單位:Kbit/s。

    /network/interfaces/macs/[mac]/ipv6s

    網卡分配的IPv6地址清單,僅支援已配置了IPv6的VPC類型執行個體。

    /network/interfaces/macs/[mac]/ipv6-gateway

    網卡所屬的VPC的IPv6網關地址。

    /network/interfaces/macs/[mac]/vswitch-ipv6-cidr-block

    網卡所屬的虛擬交換器IPv6 CIDR段,僅支援已配置了IPv6的VPC類型執行個體。

    /private-ipv4

    執行個體的私網IPv4地址。

    /ntp-conf/ntp-servers

    NTP伺服器位址。

    /owner-account-id

    執行個體擁有者的阿里雲帳號ID。

    /region-id

    執行個體所屬地區。

    /serial-number

    執行個體所對應的序號。

    /vpc-id

    執行個體所屬VPC ID。

    /vpc-cidr-block

    執行個體所屬VPC的CIDR網段。

    /vswitch-cidr-block

    執行個體所屬虛擬交換器的CIDR網段。

    /vswitch-id

    執行個體所屬虛擬交換器ID。

    /zone-id

    執行個體所屬可用性區域。

    /ram/security-credentials/[role-name]

    執行個體RAM角色策略所產生的STS臨時憑證。只有在執行個體指定了RAM角色後,您才能擷取STS臨時憑證。其中[role-name]參數需要替換為執行個體RAM角色的名稱。如果未指定[role-name],將返回執行個體RAM角色名稱。

方式二:配置容器環境變數

通過配置ECI執行個體容器環境變數的Value便可擷取執行個體相關資訊,ECI執行個體目前可以擷取到執行個體ID、執行個體名稱、執行個體所屬地區、執行個體所屬可用性區域、執行個體容器名稱等中繼資料項。

Key

Value

說明

eci_id

__ECI_ID__

執行個體ID。

eci_name

__ECI_NAME__

執行個體名稱。

region_id

__REGION_ID__

執行個體所屬地區。

zone_id

__ZONE_ID__

執行個體所屬可用性區域。

container_name

__CONTAINER_NAME__

容器名稱。

配置樣本如下:

OpenAPI

調用CreateContainerGroup介面建立ECI執行個體時,可以通過Container.N.EnvironmentVar.N.Key和Container.N.EnvironmentVar.N.Value來設定環境變數。樣本如下:

ContainerGroupName=test-env
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.Name=container-1
# 自訂環境變數
Container.1.EnvironmentVar.1.Key=eci_id
Container.1.EnvironmentVar.2.Key=eci_name
Container.1.EnvironmentVar.3.Key=region_id
Container.1.EnvironmentVar.4.Key=zone_id
Container.1.EnvironmentVar.5.Key=container_name
Container.1.EnvironmentVar.1.Value=__ECI_ID__
Container.1.EnvironmentVar.2.Value=__ECI_NAME__
Container.1.EnvironmentVar.3.Value=__REGION_ID__
Container.1.EnvironmentVar.4.Value=__ZONE_ID__
Container.1.EnvironmentVar.5.Value=__CONTAINER_NAME__

控制台

通過Elastic Container Instance控制台建立ECI執行個體時,您可以在容器配置地區選取項目容器,展開該容器的進階配置,然後開啟環境變數開關,添加環境變數。樣本如下:

中繼資料.png

建立ECI執行個體後,您可以串連容器查看是否生效。具體操作,請參見串連ECI執行個體view