IPv6 は IPv4 と比較して、より大きなアドレス空間と強化されたセキュリティを提供します。このトピックでは、IPv6 アドレスを持つ Service Mesh (ASM) ゲートウェイを作成する方法と、既存のゲートウェイに IPv6 アドレスを追加する方法について説明します。
前提条件
クラスターが ASM インスタンスに追加されていること。詳細については、「ASM インスタンスへのクラスターの追加」をご参照ください。
方法1:IPv6 ASM ゲートウェイの作成
ASM ゲートウェイを作成する際に、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6" のアノテーションを追加して IPv6 アドレスを割り当てます。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
-
メッシュ管理ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、を選択します。
-
Ingress Gatewayページで、Create from YAMLをクリックします。
-
Createページで、Namespacesを istio-system に設定し、エディターに以下の内容を入力してから、Createをクリックします。
clusterIdsフィールドを、ご利用のデータプレーンクラスターの ID に設定します。パラメーター
説明
service.beta.kubernetes.io/alicloud-loadbalancer-address-type
Classic Load Balancer (CLB) インスタンスのネットワークタイプ。有効な値は次のとおりです:
-
internet:パブリックネットワーク。
-
intranet:プライベートネットワーク。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec
CLB インスタンスの仕様。有効な値は、
slb.s1.small、slb.s2.small、slb.s2.medium、slb.s3.small、slb.s3.medium、slb.s3.largeです。service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
値を
"ipv6"に設定すると、CLB インスタンスに IPv6 アドレスが割り当てられます。ゲートウェイが作成されると、Ingress Gatewayページに、ゲートウェイの Service addressとして IPv6 アドレスが表示されます。
-
方法2:既存の ASM ゲートウェイへの IPv6 の追加
IPv4 アドレスを使用する ASM ゲートウェイがある場合、追加の CLB インスタンスを作成することで IPv6 サポートを追加できます。これにより、ゲートウェイは IPv4 と IPv6 の両方のアドレスを使用できるようになります。
Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリストをクリックします。
クラスターリストページで、対象のクラスター名をクリックします。左側のナビゲーションウィンドウで、をクリックします。
-
サービスページで、ページ上部の 名前空間を istio-system に設定し、右上隅の YAML のリソースの作成をクリックします。
-
デプロイページで、サンプルテンプレートを カスタムに設定し、テンプレートエディターに以下の内容をコピーしてから、デプロイをクリックします。
重要nodePortの値は、既存のポート番号と競合しないようにする必要があります。パラメーター
説明
service.beta.kubernetes.io/alicloud-loadbalancer-address-type
CLB インスタンスのネットワークタイプ。有効な値は次のとおりです:
-
internet:パブリックネットワーク。
-
intranet:プライベートネットワーク。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec
CLB インスタンスの仕様。有効な値は、
slb.s1.small、slb.s2.small、slb.s2.medium、slb.s3.small、slb.s3.medium、slb.s3.largeです。service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
値を
"ipv6"に設定すると、CLB インスタンスに IPv6 アドレスが割り当てられます。サービスが作成されると、サービスページの 外部 IP 列に、
istio-ingressgatewayとistio-ingressgateway-2の IPv4 および IPv6 アドレスがリスト表示されます。これらのアドレスは、ASM ゲートウェイの IPv4 および IPv6 エントリポイントとして機能します。 -
よくある質問
クライアントの元の IPv6 アドレスの取得
-
IPv6 アドレスに関連付けられている CLB インスタンスを構成します。ポート 80 と 443 のリスナー構成を変更します。詳細設定セクションで、プロキシプロトコルを有効にします。詳細については、「CLB インスタンスのレイヤー 4 リスナーを使用してクライアントの実際の IP アドレスを取得する」をご参照ください。
-
EnvoyFilter テンプレートを作成します。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
-
メッシュ管理ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、を選択します。表示されたページで、EnvoyFilter テンプレートの作成をクリックします。
-
Createページで、テンプレート名を入力し、Add an EnvoyFilter template for specific adapted istio version.をクリックし、Adapted istio versionを選択して、以下の YAML を構成してから、Createをクリックします。
apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: proxy-protocol namespace: istio-system spec: configPatches: - applyTo: LISTENER patch: operation: MERGE value: listener_filters: - name: envoy.listener.proxy_protocol - name: envoy.listener.tls_inspector workloadSelector: labels: istio: ingressgateway
-
-
EnvoyFilter テンプレートを ASM ゲートウェイに適用して、プロキシプロトコルのサポートを有効にします。
-
EnvoyFilter Templateページで、対象のテンプレートを見つけ、Actions列の Edit templateをクリックします。
-
Edit EnvoyFilter Templateページで、Bind template to workloadsタブをクリックし、Bind EnvoyFilter to Workloadsをクリックします。
-
Bind EnvoyFilter to Workloadsダイアログボックスで、Namespacesを istio-system に、Workload Typeを Deployment に設定します。Not boundセクションで、対象のゲートウェイの横にある Bindをクリックし、OK をクリックします。
-
-
IPv6 ネットワーク経由でゲートウェイの IPv6 URL にアクセスし、対応するゲートウェイログを表示します。
以下のサンプルゲートウェイログでは、
downstream_remote_addressフィールドの値がクライアントの元の IPv6 アドレスです。{"upstream_cluster":null,"bytes_received":0,"downstream_local_address":"[2400:XXXX:1300::12d1]:80","upstream_service_time":null,"FILTER_CHAIN_NAME":null,"path":"/","x_forwarded_for":"2402:XXXX:1800:af00:0:9671:f00f:314b","upstream_host":null,"bytes_sent":0,"requested_server_name":null,"route_name":null,"response_flags":"NR","start_time":"2022-12-28T06:41:57.796Z","upstream_transport_failure_reason":null,"protocol":"HTTP/1.1","authority":"[2400:XXXX:1300::12d1]","LOCAL_REPLY_BODY":"","duration":0,"method":"GET","downstream_remote_address":"[2402:XXXX:1800:af00:0:9671:f00f:314b]:58272","request_id":"fee2b69a-b755-986b-91e4-5d228c81****","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","trace_id":null,"authority_for":"[2400:XXXX:1300::12d1]","upstream_local_address":null,"istio_policy_status":null,"response_code":404}