このページでは、ワークロードが組織外に出るようにするために、プロジェクト内の仮想マシン(VM)または Pod で実行する必要がある下り(外向き)接続アクションについて説明します。この手順では、アウトバウンド トラフィックを明示的に有効にして、ワークロードが組織外で通信できるようにするために、デプロイに必須ラベルを追加する方法について説明します。
デフォルトでは、Google Distributed Cloud(GDC)エアギャップは、プロジェクト内のワークロードが組織外に出るのをブロックします。プラットフォーム管理者(PA)がプロジェクトのデータ漏洩保護を無効にしている場合、ワークロードは組織を終了できます。データ漏洩保護を無効にするだけでなく、Application Operator(AO)は、ポッドのワークロードにラベル egress.networking.gke.io/enabled: true
を追加して、そのポッドの下り(外向き)接続を有効にする必要があります。プロジェクトに既知の IP アドレスを割り当てて使用すると、組織からのアウトバウンド トラフィックに対して送信元ネットワーク アドレス変換(NAT)が実行されます。
Pod または VM のワークロードからの下り(外向き)接続を管理できます。
Pod 内のワークロードからのアウトバウンド トラフィックを管理する
下り(外向き)接続用に Pod のワークロードを構成するには、まずプロジェクトでデータ漏洩保護が無効になっていることを確認する必要があります。次に、Pod に egress.networking.gke.io/enabled: true
ラベルが追加されていることを確認します。Deployment
などの上位レベルのコンストラクトまたは Daemonset
コンストラクトを使用して Pod のセットを管理している場合は、これらの仕様で Pod ラベルを構成する必要があります。
次の例は、マニフェスト ファイルから Deployment
を作成する方法を示しています。サンプル ファイルの labels
フィールドには、プロジェクトからのアウトバウンド トラフィックを明示的に有効にする値 egress.networking.gke.io/enabled: true
が含まれています。このラベルは Deployment 内の各 Pod に追加され、Pod 内のワークロードが組織から離脱できるようになります。
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \
apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: DEPLOYMENT_NAME
spec:
replicas: NUMBER_OF_REPLICAS
selector:
matchLabels:
run: APP_NAME
template:
metadata:
labels: # The labels given to each pod in the deployment, which are used
# to manage all pods in the deployment.
run: APP_NAME
egress.networking.gke.io/enabled: true
spec: # The pod specification, which defines how each pod runs in the deployment.
containers:
- name: CONTAINER_NAME
image: CONTAINER_IMAGE
EOF
次のように置き換えます。
USER_CLUSTER_KUBECONFIG
: コンテナ ワークロードをデプロイするユーザー クラスタの kubeconfig ファイル。DEPLOYMENT_NAME
: コンテナ ワークロードをデプロイするユーザー クラスタの kubeconfig ファイル。APP_NAME
: デプロイ内で実行するアプリケーションの名前。NUMBER_OF_REPLICAS
: Deployment が管理する複製Pod
オブジェクトの数。CONTAINER_NAME
: コンテナの名前。CONTAINER_IMAGE
: コンテナ イメージの名前。REGISTRY_PATH/hello-app:1.0
など、コンテナ レジストリのパスとイメージのバージョンを含める必要があります。
次に例を示します。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
run: my-app
template:
metadata:
labels:
run: my-app
egress.networking.gke.io/enabled: true
spec:
containers:
- name: hello-app
image: REGISTRY_PATH/hello-app:1.0
VM 内のワークロードからのアウトバウンド トラフィックを管理する
下り(外向き)接続用に VM のワークロードを構成するには、VM 構成に GDC コンソールを使用するか、VirtualMachineExternalAccess
リソースを作成します。データ転送用に外部アクセスで VM を有効にする方法については、VM に接続するセクションの外部アクセスを有効にするをご覧ください。