このセクションでは、外部ロードバランサを使用して Google Distributed Cloud エアギャップで内向きトラフィック仮想マシンを開く方法について説明します。
ロードバランサ サービスを使用して VM を公開する
上り(内向き)トラフィックは、GDC クラスタ内の Linux VM に、 LoadBalancerタイプのサービスを介して送信されます。このサービスは、特定の ポートのトラフィックを VM に転送します。
Linux VM の上り(内向き)トラフィックを有効にするには、VM の作成に使用する YAML ファイルにラベル
ingress.virtualmachines.gpc.gke.io: true を追加します。これにより、VM インスタンスの作成時に上り(内向き)トラフィック用の LoadBalancer
サービスが作成されます。このサービスは、VM と同じ Namespace に VM_NAME-default-ingress
という名前で作成されます。
上り(内向き)トラフィック用に VM ポートを開く
上り(内向き)トラフィックを受け入れるには、VM でポートを明示的に開く必要があります。次に例を示します。
kubectl patch svc VM_NAME-default-ingress -n NAMESPACE_NAME -p \
'{"spec":{"ports":[{"protocol":"TCP","port":PORT, "name": "NAME"}]}}'
各プレースホルダを次のように置き換えます。
- VM_NAME は、VM の名前に置き換えます。
- NAMESPACE_NAME は、サービスの名前空間に置き換えます。
- PORT は、VM で開くポートに置き換えます。
- NAME は、ポート名に置き換えます。
Egress
プロジェクト内の VM ワークロードは、外部ネットワークにアクセスしたり、他の Fleet のサービスに公開したりできます。
下り(外向き)を有効にする(EgressNAT)
事前定義された IP アドレスを使用して、下り(外向き)トラフィックの永続的で確定的なルーティングを行う下り(外向き)NAT ゲートウェイを有効にします。これにより、より具体的なファイアウォール ルールとルーティング ルールを作成できます。
NetworkPolicy
コンテナ ワークロードのネットワーク ポリシーは、プロジェクト レベルで設定できます。プロジェクトは、複数のデフォルトのベアメタル ユーザー クラスタにまたがることがあります。
SSH を使用して Linux VM に接続する
SSH を使用して Linux VM に接続するには、ロードバランサ サービスの IP アドレスを使用します。VM の SSH ポート 22 はデフォルトで開いています。
ロードバランサ サービスの IP アドレスを取得する
次の出力例は、IP アドレスが 10.200.0.102 の場合、ロードバランサ サービスが TCP ポート 22 で SSH
トラフィックを転送する準備ができていることを示しています。
kubectl get services VM_NAME-default-ingress -n NAMESPACE_NAME
TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
LoadBalancer 10.106.6.18 10.200.0.102 22:32443/TCP 11s
VM に接続する
VM に接続するには、ロードバランサ サービスの IP アドレスと SSH 鍵を使用します。 たとえば、ブートストラップ マシンから接続できます。
ssh -i /path/to/KEY_NAME ubuntu@10.200.0.102
VM との間でファイルを転送する
Distributed Cloud VM インスタンスにファイルを転送する場合、ワークステーションの OS とターゲット VM インスタンスの OS に基づいて各種オプションを使用できます。
Linux VM にファイルを転送する
VM への SSH 接続を確立し、その接続を使用してファイルを VM に転送します。
VM からファイルを転送する
ファイルやディレクトリは、VM からローカルのワークステーションにコピーすることもできます。
次のコマンド(TBD)を使用して、VM(コピー元)からローカル ワークステーション(コピー先)にディレクトリを再帰的にコピーします。