すべてのプロダクト
Search
ドキュメントセンター

:ECIポッド注釈

最終更新日:Nov 09, 2023

KubernetesクラスターにElastic Container Instanceベースのポッドを作成するときに、ポッドにアノテーションを追加して、Elastic Container Instanceの機能を最大限に活用できます。 追加するアノテーションがKubernetes構文に準拠していることを確認します。 このトピックでは、Elastic Container Instanceでサポートされるアノテーションについて説明します。 このトピックでは、アノテーションの設定方法の例も示します。

次の表に、Elastic Container Instanceでサポートされているアノテーションを示します。

説明

  • 次の表に示すアノテーションは、仮想ノードにスケジュールされているポッドにのみ適用できます。 これらのポッドは、Elastic Container Instanceで実行されます。 実ノードにスケジュールされているポッドにアノテーションを追加することはできません。

  • ポッドのメタデータに注釈を追加します。 例えば、デプロイメントを設定する場合、spec.template.metadata セクションにアノテーションを追加します。

注釈

説明

参考資料

k8s.aliyun.com/eci-security-group

sg-bp1dktddjsg5nktv ****

セキュリティグループの ID です。

セキュリティグループの設定

k8s.aliyun.com/eci-vswitch

vsw-bp1xpiowfm5vo8o3c****

The IDs of the vSwitches. 複数のゾーンに複数のvSwitchを指定できます。

複数のゾーンを指定してエラスティックコンテナインスタンスを作成

k8s.aliyun.com/eci-schedule-strategy

VSwitchOrdered

マルチゾーンスケジューリングポリシー。 設定可能な値は以下のとおりです。

  • VSwitchOrdered: 指定されたゾーンのリソースは、vSwitchが指定された順序でスケジュールされます。

  • VSwitchRandom: 指定されたゾーンのリソースはランダムにスケジュールされます。

k8s.aliyun.com/eci-ram-role-name

AliyunECIContainerGroupRole

Elastic Container Instanceが他のAlibaba Cloudサービスにアクセスするために想定しているリソースアクセス管理(RAM)の役割です。

なし 以下のセクションでは、詳細について説明します。

k8s.aliyun.com/eci-use-specs

2-4Gi、4-8Gi、ecs.c6.xlarge

エラスティックコンテナインスタンスタイプ。 複数のエラスティックコンテナインスタンスタイプを指定できます。 エラスティックコンテナインスタンスタイプを指定するには、vCPUの数とメモリサイズを指定するか、ECSインスタンスタイプを指定します。

複数のインスタンスタイプを指定してElastic Container Instanceを作成

k8s.aliyun.com/eci-spot-strategy

SpotAsPriceGo

プリエンプティブルインスタンスの入札ポリシー。 設定可能な値は以下のとおりです。

  • SpotAsPriceGo: システムは、スポット価格に基づいて入札を行う。

  • SpotWithPriceLimit: プリエンプティブインスタンスに支払う、1時間あたりの最大価格を指定する必要があります。

プリエンプティブルインスタンスの作成

k8s.aliyun.com/eci-spot-price-limit

0.5

プリエンプティブルインスタンスの1時間あたりの最大料金。 このパラメータは k8s.aliyun.com/eci-spot-strategy が SpotWithPriceLimit に設定されているときのみ有効です。

k8s.aliyun.com/eci-cpu-option-core

2

物理CPUコアの数。

Customize CPU options

k8s.aliyun.com/eci-cpu-option-ht

1

コア当たりのスレッド数。

k8s.aliyun.com/eci-reschedule-enable

"true"

Elastic Container Instanceの再スケジューリングを有効にするかどうかを指定します。

なし 次のセクションで詳細を説明します。

k8s.aliyun.com/pod-fail-on-create-err

"true"

作成できないElastic Container InstanceをFailed状態にするかどうかを指定します。

なし 次のセクションで詳細を説明します。

k8s.aliyun.com/eci-image-snapshot-id

imc-2zebxkiifuyzzlhl ****

イメージキャッシュのID。

説明

イメージキャッシュを使用してElastic Container Instanceを作成するには、使用するイメージキャッシュを指定するか、イメージキャッシュの自動マッチングを有効にします。 画像キャッシュの自動マッチングを有効にすることをお勧めします。

ImageCache CRDを使用してポッドの作成を高速化

k8s.aliyun.com/eci-image-cache

"true"

画像キャッシュの自動マッチングを有効にするかどうかを指定します。

説明

イメージキャッシュを使用してエラスティックコンテナインスタンスを作成するには、使用するイメージキャッシュを指定するか、イメージキャッシュの自動マッチングを有効にすることができます。 イメージキャッシュの自動マッチングを有効にすることを推奨します。

k8s.aliyun.com/acr-instance-id

cri-j36zhodptmyq****

Container Registry Enterprise Edition のインスタンスの ID。

Elastic Container Instanceのリージョンとは異なるリージョンに存在するContainer Registry Enterprise Editionインスタンスを指定できます。 これを行うには、Container Registry Enterprise Editionインスタンスのリージョン名の前にContainer Registry Enterprise EditionインスタンスのIDを付ける必要があります。 Example: "cn-beijng:cri-j36zhodptmyq****".

Container Registry Enterprise Edition インスタンスからイメージをプルするためのパスワード不要のアクセスを設定します。

k8s.aliyun.com/eci-eip-instanceid

eip-bp1q5n8cq4p7f6dzu ****

elastic IPアドレス (EIP) のID。

インターネットアクセスの有効化

k8s.aliyun.com/eci-with-eip

"true"

EIPを自動的に作成し、EIPをElastic Container Instanceに関連付けるかどうかを指定します。

k8s.aliyun.com/eip-bandwidth

5

EIPの帯域幅の値です。

k8s.aliyun.com/eip-common-bandwidth-package-id

cbwp-2zeukbj916scmj51m ****

EIP帯域幅プランのID。

k8s.aliyun.com/eip-isp

BGP

EIPのラインタイプ。 このアノテーションは、従量課金EIPにのみ適用されます。 設定可能な値は以下のとおりです。

  • BPG: BGP (マルチISP) ライン

  • BGP_PRO: BGP (マルチISP) プロライン

k8s.aliyun.com/eip-internet-charge-type

帯域幅課金

EIPの計量方法。 設定可能な値は以下のとおりです。

  • 帯域幅課金

  • トラフィック課金

k8s.aliyun.com/eci-enable-ipv6

"true"

IPv6アドレスを割り当てるかどうかを指定します。

エラスティックコンテナインスタンスへのIPv6アドレスの割り振り

kubernetes.io/ingress-bandwidth

40M

インバウンド帯域幅。

エラスティックコンテナインスタンスの帯域幅の制限

kubernetes.io /出力帯域幅

20M

アウトバウンド帯域幅。

k8s.aliyun.com/eci-extra-ephemeral-storage

50Gi

一時保存スペースのサイズ。

カスタムの一時ストレージスペースの作成

k8s.aliyun.com/eci-core-pattern

/pod/data/dump/core

コアダンプファイルが格納されているディレクトリ。

コアダンプファイルの表示

k8s.aliyun.com/eci-ntp-server

100.100.*.*

ネットワークタイムプロトコル (NTP) サーバーのIPアドレス。

ポッドのNTPサービスの設定

k8s.aliyun.com/plain-http-registry

「harbor *** .pre.com、192.168。XX。XX:5000、reg *** .test.com:80」

自己管理イメージリポジトリのIPアドレス。

HTTPプロトコルを使用する自己管理イメージリポジトリ内のイメージを使用してElastic Container Instanceを作成する場合、このアノテーションをインスタンスに追加する必要があります。 このように、Elastic Container InstanceはHTTPSプロトコルを使用してイメージをプルします。 This can prevent the image from failing to pull due to different protocols.

自己管理イメージリポジトリの使用

k8s.aliyun.com/insecure-registry

「harbor *** .pre.com、192.168。XX。XX:5000、reg *** .test.com:80」

自己管理イメージリポジトリのIPアドレス。

自己署名証明書を使用する自己管理イメージリポジトリ内のイメージを使用してElastic Container Instanceを作成する場合、証明書の認証をスキップするには、この注釈をインスタンスに追加する必要があります。 これにより、証明書認証の失敗によるイメージのプルの失敗を防ぐことができます。

RAMロールの設定

アノテーションを追加することで、ポッドのRAMロールを設定することができます。その後、ポッドはAlibaba Cloudサービスにアクセスする役割を引き受けます。

重要

  • アノテーションを追加する前に、RAMロールを作成し、RAMロールに権限を付与する必要があります。 RAMロールを作成するときは、RAMロールの信頼済みサービスがECSであることを確認してください。

  • RAMユーザーを使用する場合は、そのRAMユーザーにram:passRole権限があることを確認してください。

サンプル設定:

apiVersion: apps/v1
kind: 配置
メタデータ:
  名前: set-ram-role
  labels:
    アプリ: vk
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
        annotations: 
            k8s.aliyun.com/eci-ram-role-name : "${your_ram_role_name}"  
        labels:
            app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: virtual-kubelet 

Elastic Container Instanceのリスケジュールの設定

仮想ノードへのポッドのスケジューリングに失敗することがあります。 ポッドの再スケジュールを有効にする注釈を追加できます。 これにより、非同期スケジューリングが失敗した場合でも、システムは失敗を返すのではなく、スケジューリングポッドを再試行し続けます。

サンプル設定:

apiVersion: apps/v1
kind: Deployment
metadata:
  名前: set-eci
  labels:
    アプリ: vk
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
        annotations: 
            k8s.aliyun.com/eci-reschedule-enable: "true"# エラスティックコンテナインスタンスの再スケジューリングを有効にします。 
        labels:
            app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: virtual-kubelet 

作成できないPodをFailed状態にする

デフォルトでは、ポッドの作成時にエラーが発生した場合、システムは指定された最大再試行回数まで再試行します。 最大数の再試行後にポッドを作成できない場合、ポッドはPending状態になります。 一部のジョブでは、ポッドが [失敗] 状態になることがあります。 この場合、作成できないポッドをFailed状態にする注釈を追加できます。

サンプル設定:

apiVersion: apps/v1
kind: 配置
メタデータ:
  name: set-pod-fail-on-create-err
  labels:
    アプリ: vk
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
        annotations: 
            k8s.aliyun.com/pod-fail-on-create-err: "true"# ポッドの作成に失敗した場合、ステータスをFailedに設定します。 
        labels:
            app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: virtual-kubelet