VM アクセス

このセクションでは、外部ロードバランサを使用して、Google Distributed Cloud エアギャップで上り(内向き)トラフィック仮想マシンを開く方法について説明します。

ロードバランサ サービスを使用して VM を公開する

内向きトラフィックは、LoadBalancer タイプの Service を介して GDC クラスタの Linux VM に入ります。この Service は、特定のポートのトラフィックを VM に転送します。

Linux VM の内向きトラフィックを有効にするには、VM の作成に使用する YAML ファイルにラベル ingress.virtualmachines.gpc.gke.io: true を追加します。次に、VM インスタンスの作成時に、上り(内向き)トラフィック用の LoadBalancer サービスが作成されます。サービスは、VM と同じ名前空間に 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 は、サービスの Namespace に置き換えます。
  • PORT は、VM で開くポートに置き換えます。
  • NAME はポート名に置き換えます。

Egress

プロジェクト内の VM ワークロードは、外部ネットワークにアクセスしたり、他のフリートのサービスに公開したりできます。

下り(外向き)を有効にする(EgressNAT による)

事前定義された IP アドレスを使用して、下り(外向き)トラフィックの永続的で決定論的なルーティングを行う下り(外向き)NAT ゲートウェイを有効にします。これにより、より具体的なファイアウォール ルールとルーティング ルールを作成できます。

NetworkPolicy

コンテナ ワークロードのネットワーク ポリシーは、プロジェクト レベルで設定できます。プロジェクトは、複数のデフォルトのベアメタル ユーザー クラスタにまたがることがあります。

SSH を使用して Linux VM に接続する

SSH を使用して Linux VM に接続するには、ロードバランサ サービスの IP アドレスを使用します。VM では、SSH ポート 22 がデフォルトで開いています。

ロードバランサ サービスの IP アドレスを取得する

ロードバランサ サービスの外部 IP アドレスを取得します。

kubectl get services VM_NAME-default-ingress -n NAMESPACE_NAME

次の出力例は、IP アドレスが 10.200.0.102 の場合、ロードバランサ サービスが TCP ポート 22 で SSH トラフィックを転送する準備ができていることを示しています。

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(コピー元)からローカル ワークステーション(コピー先)にディレクトリを再帰的にコピーします。