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

在容器內(nèi)獲取元數(shù)據(jù)

ECI Pod(即ECI實例)的元數(shù)據(jù)可以提供關(guān)于Pod及其容器的信息用于管理和使用容器,例如名稱、ID等基本信息,以及IP地址、網(wǎng)卡等網(wǎng)絡(luò)信息等。本文介紹如何在容器內(nèi)獲取元數(shù)據(jù),將ECI Pod信息和容器Meta數(shù)據(jù)呈現(xiàn)給運行中的容器。

方式一:通過MetaServer訪問元數(shù)據(jù)

  1. 連接容器。具體操作,請參見連接ECI實例

  2. 訪問元數(shù)據(jù)。

    說明

    如果容器環(huán)境沒有安裝curl,請先安裝curl。

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

    <metadata>請?zhí)鎿Q為具體要查詢的實例元數(shù)據(jù)。例如執(zhí)行以下命令獲取實例ID。

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

    ECI實例目前能獲取的基本實例元數(shù)據(jù)項如下表所示:

    實例元數(shù)據(jù)項

    說明

    /dns-conf/nameservers

    實例的DNS配置。

    /eipv4

    實例的彈性公網(wǎng)IP(IPv4類型)。

    /hostname

    實例的主機名,對應(yīng)ContainerGroupName。

    /instance-id

    實例ID。

    /mac

    實例的MAC地址。

    /network/interfaces/

    網(wǎng)卡的MAC地址列表。

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

    網(wǎng)卡的標識ID,其中[mac]參數(shù)需要替換為實例MAC地址。

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

    網(wǎng)卡對應(yīng)的子網(wǎng)掩碼。

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

    網(wǎng)卡所屬的虛擬交換機IPv4 CIDR段。

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

    網(wǎng)卡所屬的VPC IPv4 CIDR段。

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

    網(wǎng)卡分配的私網(wǎng)IPv4地址列表。

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

    網(wǎng)卡所屬的VPC IPv6 CIDR段,僅支持已配置了IPv6的VPC類型實例。

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

    網(wǎng)卡所屬安全組的虛擬交換機ID。

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

    網(wǎng)卡所屬安全組的VPC ID。

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

    網(wǎng)卡主私有IP地址。

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

    網(wǎng)卡對應(yīng)的IPv4網(wǎng)關(guān)地址。

    /instance/max-netbw-egress

    實例規(guī)格的出方向內(nèi)網(wǎng)最大帶寬。單位:Kbit/s。

    /instance/max-netbw-ingerss

    實例規(guī)格的入方向內(nèi)網(wǎng)最大帶寬。單位:Kbit/s。

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

    網(wǎng)卡分配的IPv6地址列表,僅支持已配置了IPv6的VPC類型實例。

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

    網(wǎng)卡所屬的VPC的IPv6網(wǎng)關(guān)地址。

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

    網(wǎng)卡所屬的虛擬交換機IPv6 CIDR段,僅支持已配置了IPv6的VPC類型實例。

    /private-ipv4

    實例的私網(wǎng)IPv4地址。

    /ntp-conf/ntp-servers

    NTP服務(wù)器地址。

    /owner-account-id

    實例擁有者的阿里云賬號ID。

    /region-id

    實例所屬地域。

    /serial-number

    實例所對應(yīng)的序列號。

    /vpc-id

    實例所屬VPC ID。

    /vpc-cidr-block

    實例所屬VPC的CIDR網(wǎng)段。

    /vswitch-cidr-block

    實例所屬虛擬交換機的CIDR網(wǎng)段。

    /vswitch-id

    實例所屬虛擬交換機ID。

    /zone-id

    實例所屬可用區(qū)。

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

    實例RAM角色策略所生成的STS臨時憑證。只有在實例指定了RAM角色后,您才能獲取STS臨時憑證。其中[role-name]參數(shù)需要替換為實例RAM角色的名稱。如果未指定[role-name],將返回實例RAM角色名稱。

方式二:配置容器的環(huán)境變量

通過容器環(huán)境變量的Value可以獲取ECI實例的元數(shù)據(jù)。支持配置環(huán)境變量獲取的元數(shù)據(jù)項如下:

Key

Value

說明

eci_id

__ECI_ID__

實例ID。

eci_name

__ECI_NAME__

實例名稱。

region_id

__REGION_ID__

實例所屬地域。

zone_id

__ZONE_ID__

實例所屬可用區(qū)。

container_name

__CONTAINER_NAME__

容器名稱。

配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        env:  
          - name: eci_id
            value: __ECI_ID__
          - name: eci_name
            value: __ECI_NAME__
          - name: region_id
            value: __REGION_ID__
          - name: zone_id
            value: __ZONE_ID__
          - name: container_name
            value: __CONTAINER_NAME__

登入容器查看環(huán)境變量,可以看到環(huán)境變量已經(jīng)生效。示例如下:

K8s獲取元數(shù)據(jù)

方式三:Downward API

Kubernetes Downward API提供了以下兩種方式:

  • 環(huán)境變量

    用于單個變量,可以將Pod信息直接注入容器內(nèi)部。

  • Volume掛載

    可以將Pod信息生成為文件,直接掛載到容器內(nèi)部。

目前ACK+ECI已經(jīng)支持了Downward API的大部分常用字段,下文將為您介紹使用方式。

環(huán)境變量方式

您可以通過Downward API將Pod的名稱、命名空間、IP等信息注入到容器的環(huán)境變量中。通過環(huán)境變量可以獲得的元數(shù)據(jù)項如下表所示。

參數(shù)

描述

metadata.name

Pod名稱。

metadata.namespace

Pod命名空間。

metadata.uid

Pod的UID。

metadata.labels['<KEY>']

Pod的標簽值。

metadata.annotations['<KEY>']

Pod的注解值。具體請參見ECI Pod Annotation

spec.serviceAccountName

Pod服務(wù)賬號名稱。

spec.nodeName

節(jié)點名稱。

status.podIP

節(jié)點IP。

Deployment示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: downward-env
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
        annotations: 
            regionId: cn-beijing
            platform: Aliyun ECI
        labels:
            app: nginx
            env: test
            alibabacloud.com/eci: "true" 
    spec:
      containers:
      - name: nginx
        image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
        env:
        - name: METADATA_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: METADATA_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: METADATA_UID
          valueFrom:
            fieldRef:
              fieldPath: metadata.uid
        - name: METADATA_LABELS
          valueFrom:
            fieldRef:
              fieldPath: metadata.labels['env']
        - name: METADATA_ANNOTATIONS_REGION
          valueFrom:
            fieldRef:
              fieldPath: metadata.annotations['regionId']
        - name: METADATA_ANNOTATIONS_ECI_INSTANCE_ID
          valueFrom:
            fieldRef:
              fieldPath: metadata.annotations['k8s.aliyun.com/eci-instance-id']
        - name: STATUS_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: SPEC_SERVICE_ACCOUNT_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName

登入容器查看環(huán)境變量,可以看到fieldRef已經(jīng)生效。示例如下:

downward

Volume掛載方式

您可以通過Downward API將Pod的Label、Annotation等信息通過Volume掛載到容器的某個文件中。通過Volume掛載可以獲得的元數(shù)據(jù)項如下表所示。

參數(shù)

描述

metadata.name

Pod名稱。

metadata.namespace

Pod命名空間。

metadata.uid

Pod的UID。

metadata.labels['<KEY>']

Pod的標簽值。

metadata.annotations['<KEY>']

Pod的注解值。

metadata.labels

Pod的所有標簽。

metadata.annotations

Pod的所有注解。

說明

目前僅支持Pod字段,還不支持容器字段,例如:limits.cpu、requests.cpu、limits.memory、requests.memory、limits.ephemeral-storage、requests.ephemeral-storage。

Deployment示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: downward-down-volume
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
        annotations: 
            regionId: cn-beijing
            platform: Aliyun ECI
        labels:
            app: nginx
            env: test
            alibabacloud.com/eci: "true" 
    spec:
      containers:
      - name: nginx
        image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
        volumeMounts:
        - name: podinfo
          mountPath: /etc/podinfo
          readOnly: false
      volumes:
      - name: podinfo
        downwardAPI:
          items:
            - path: "metadata.name"
              fieldRef:
                fieldPath: metadata.name
            - path: "metadata.namespace"
              fieldRef:
                fieldPath: metadata.namespace
            - path: "metadata.uid"
              fieldRef:
                fieldPath: metadata.uid
            - path: "metadata.labels"
              fieldRef:
                fieldPath: metadata.labels
            - path: "metadata.annotations"
              fieldRef:
                fieldPath: metadata.annotations

登入容器查看Volume的掛載目錄,可以看到Volume的fieldRef已經(jīng)生效,并存儲在容器指定的目錄下。示例如下:

K8s獲取元數(shù)據(jù)2