

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# ハイブリッドノードゲートウェイの CNI を設定する
<a name="hybrid-nodes-gateway-cni"></a>

Amazon EKS Hybrid Nodes ゲートウェイでは、VPC とハイブリッドノード間の VXLAN ベースの接続を有効にするために、特定の Cilium 設定が必要です。Cilium VTEP (VXLAN トンネルエンドポイント) サポートを有効にし、L7 プロキシを無効にする必要があります。

## 前提条件
<a name="hybrid-nodes-gateway-cni-prereqs"></a>
+ Cilium はハイブリッドノードに既にインストールされています。インストール手順については、「[ハイブリッドノードの CNI を設定する](hybrid-nodes-cni.md)」を参照してください。

**注記**  
Cilium VTEP は、以下の EKS Cilium の最小バージョンでのみサポートされています。  
Cilium 1.17.13-1 以降
Cilium 1.18.8-1 以降
Cilium 1.19.2-1 以降
古いバージョンを実行している場合は、VTEP を有効にする前に Cilium をアップグレードします。更新する方法については、[ハイブリッドノードの CNI を設定する](hybrid-nodes-cni.md) を参照してください。

## VTEP を有効にして L7 プロキシを無効にする
<a name="hybrid-nodes-gateway-cni-configure"></a>

Cilium バージョンを設定し、`helm upgrade` コマンドを実行して VTEP を有効にし、既存の Cilium インストールで L7 プロキシを無効にします。利用可能な最新のパッチバージョンは、[Amazon ECR Public: eks/cilium/cilium](https://gallery.ecr.aws/eks/cilium/cilium) で確認できます。

```
helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \
  --version {{CILIUM_VERSION}} \
  --namespace kube-system \
  --reuse-values \
  --set vtep.enabled=true \
  --set l7Proxy=false
```

アップグレードが完了したら、Cilium DaemonSet を再起動して新しい設定を適用します。

```
kubectl rollout restart daemonset/cilium -n kube-system
kubectl rollout status daemonset/cilium -n kube-system
```

## 必須の設定
<a name="hybrid-nodes-gateway-cni-settings"></a>


| 設定 | 値 | 説明 | 
| --- | --- | --- | 
|  `vtep.enabled`  |  `true`  | Cilium の VXLAN トンネルエンドポイントのサポートを有効にします。これにより、ハイブリッドノードの Cilium エージェントは VPC バウンドトラフィックをカプセル化し、ゲートウェイに送信できます。 | 
|  `l7Proxy`  |  `false`  | Cilium の L7 プロキシを無効にします。これは、VTEP が正しく機能するために必要です。L7 プロキシが有効になっている場合、VTEP トラフィックが傍受およびドロップされる可能性があります。 | 

## 設定を確認する
<a name="hybrid-nodes-gateway-cni-verify"></a>

Cilium をアップグレードしたら、VTEP が有効で、L7 プロキシが無効になっていることを確認します。

```
kubectl get configmap cilium-config -n kube-system -o yaml | grep -E "enable-vtep|enable-l7-proxy"
```

次のような出力が表示されます:

```
enable-l7-proxy: "false"
enable-vtep: "true"
```

## ハイブリッドポッドトラフィックの VPC CNI を設定する
<a name="hybrid-nodes-gateway-cni-vpc-cni"></a>

デフォルトでは、AWS VPC CNI はノードから出るすべてのポッドトラフィックにソース NAT (SNAT) を適用します。ハイブリッドポッドエンドポイントを持つ Kubernetes ClusterIP サービスがクラウドノードから正しく動作するようにするには、ハイブリッドポッド CIDR を SNAT から除外します。これにより、kube-proxy DNAT’d トラフィックは VPC ルーティングを正しく使用できます。

`aws-node` DaemonSet の `AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS` 環境変数をハイブリッドポッド CIDR (複数可) に設定します。

```
kubectl set env daemonset aws-node -n kube-system \
  AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS={{POD_CIDRS}}
```

値を実際のハイブリッドポッド CIDR に置き換えます (複数ある場合はカンマで区切ります)。

この設定では、ハイブリッドポッド CIDR を VPC CNI の ip ルールに追加し、ハイブリッドポッド宛てのトラフィックがゲートウェイ ENI への VPC ルートを含むメインルーティングテーブルを介してルーティングされるようにします。

**注記**  
このステップは、クラウドポッドからハイブリッドポッドエンドポイントへの ClusterIP サービストラフィックに必要です。IP アドレスによるポッド間の直接接続は、この設定なしで機能します。

## 次のステップ
<a name="hybrid-nodes-gateway-cni-next"></a>

Cilium と VPC CNI を設定したら、Hybrid Nodes ゲートウェイのインストールに進みます。「[EKS Hybrid Nodes ゲートウェイの使用を開始する](hybrid-nodes-gateway-getting-started.md)」を参照してください。