Elasticコンテナインスタンス (ポッド) は、IPv4およびIPv6アドレスをサポートします。 IPv4と比較して、IPv6はより多くのIPアドレスを提供する。 このトピックでは、IPv6アドレスをポッドに割り当てる方法について説明します。
背景情報
IPv4アドレスは広く使用されている。 しかしながら、IPv4アドレスの数が限られているため、インターネットの発展が制限される。 IPv4アドレスと比較して、IPv6アドレスはより十分であり、より多くのタイプのデバイスがインターネットにアクセスできるようにします。 詳細については、「」をご参照ください。IPv6ゲートウェイとは
IPv6アドレスをポッドに割り当てる場合、次の制限が適用されます。
1つのポッドに割り当てることができるIPv6アドレスは1つだけです。
vCPUの数とメモリサイズを指定して作成したすべてのエラスティックコンテナインスタンスにIPv6アドレスを割り当てることができます。 ECS (elastic Compute Service) のインスタンスタイプを指定して作成したエラスティックコンテナインスタンスの場合、IPv6アドレスをエラスティックコンテナインスタンスに割り当てる前に、指定したECSインスタンスタイプがIPv6アドレスをサポートしていることを確認してください。 ECSインスタンスタイプがIPv6アドレスをサポートしているかどうかについては、「インスタンスファミリーの概要」をご参照ください。
前提条件
IPv6 CIDRブロックは、ポッドが存在する仮想プライベートクラウド (VPC) と、ポッドが接続されているvSwitchに対して有効になっています。 詳細については、「VPCのIPv6の有効化」および「vSwitchのIPv6の有効化」をご参照ください。
設定の説明
Kubernetesが関与するシナリオでは、ポッドのメタデータに注釈を追加して、ポッドにIPv6アドレスを割り当てることができます。 その後、IPv6アドレスのインターネット帯域幅を設定して有効にすることができます。 次の表に、アノテーションを示します。
注釈 | 例 | 必須 | 説明 |
k8s.aliyun.com/eci-enable-ipv6 | 「真」 | 必須 | ポッドにIPv6アドレスを割り当てるかどうかを指定します。 |
k8s.aliyun.com/eci-ipv6-bandwidth-enable | 「真」 | 選択可能 | ポッドのIPv6アドレスを介したインターネットアクセスを有効にするかどうかを指定します。 |
k8s.aliyun.com/eci-ipv6-bandwidth | 200 | 選択可能 | IPv6アドレスのピークインターネット帯域幅を指定します。 有効な値:
説明 ポッドのIPv6アドレスを使用したインターネットアクセスを有効にしたときにこのアノテーションを構成しない場合、ポッドに割り当てられているIPv6アドレスの既定のインターネット帯域幅は、IPv6ゲートウェイでサポートされている最大インターネット帯域幅に等しくなります。 |
ポッドの構成ファイルのメタデータに注釈を追加する必要があります。 たとえば、配置を作成するときは、spec.template.metadataセクションに注釈を追加する必要があります。
Elastic Container Instanceの機能を使用するには、Elastic Container Instanceベースのポッドを作成する場合にのみアノテーションを追加できます。 ポッドを更新するときにアノテーションを追加または変更しても、これらのアノテーションは有効になりません。
例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-enable-ipv6: "true" # Assigns an IPv6 address to the pod.
k8s.aliyun.com/eci-ipv6-bandwidth-enable: "true" # Enables Internet access over IPv6 addresses for the pod.
k8s.aliyun.com/eci-ipv6-bandwidth: 100M # Configures the peak Internet bandwidth of the IPv6 address.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
ポッドを作成したら、kubectl describe pod
コマンドを実行して、ポッドの詳細を表示できます。 返されたアノテーションでは、k8s.aliyun.com/allocated-ipv6Address
フィールドからポッドのIPv6アドレスを取得できます。