プライベート クラスタは、内部 IP アドレスのみに依存する Virtual Private Cloud(VPC)ネイティブ クラスタです。つまり、デフォルトでノードと Pod はインターネットから隔離されています。このページでは、Cloud Code を使用して、パブリック エンドポイント アクセスの有無にかかわらずプライベート クラスタに接続し、プライベート クラスタが Google Cloudの外部からリソースにアクセスできるようにする方法について説明します。
限定公開クラスタの詳細については、限定公開クラスタをご覧ください。限定公開クラスタを構成する手順については、限定公開クラスタを作成するをご覧ください。
KubeConfig に限定公開 GKE クラスタを追加する
Cloud Code にプライベート クラスタを追加した際の動作を以下に示します。
パブリック エンドポイントが有効になっているクラスタの場合、クラスタを追加すると、KubeConfig のクラスタ アドレスが外部 IP に設定されます。
パブリック エンドポイントを無効にしているクラスタの場合、クラスタを追加すると、KubeConfig のクラスタ アドレスがクラスタの内部 VPC IP に設定されます。
承認済みネットワークを既存のクラスタに追加するには、そのクラスタで承認済みネットワークが有効になっていて、承認済みネットワークに接続していることを確認してください。
外部 IP アドレスを持たない VM への接続について詳しくは、VM インスタンスへの安全な接続をご覧ください。 作成したインスタンスを管理、または削除するには、VM インスタンスをご覧ください。
プライベート クラスタに正常に接続するには、Cloud Code がクラスタのネットワーク内のマシンで実行されているか、プロキシ サーバー、Cloud Interconnect、または Cloud VPN を使用して、クラスタのネットワークにアクセスできる必要があります。
Cloud Code で GKE クラスタを作成し、既存の GKE クラスタを Cloud Code に追加する手順については、GKE クラスタの作成と構成をご覧ください。 Cloud Code によって Google Cloud コンソールが開き、クラスタが作成されます。
クラスタの作成時に、クラスタからインターネットへの送信接続を有効にするように Cloud NAT が構成されていない場合は、クラスタを作成した後に構成します。作成したネットワークを管理、または削除するには、VPC ネットワークをご覧ください。
プライベート クラスタへの接続に関する問題のトラブルシューティング
限定公開クラスタにアクセスするように開発環境が正しく構成されていない場合、問題を解決する方法に関する推奨事項が次のコンテキストで表示されます。
展開した [Kubernetes] セクションで、Cloud Code が接続できないクラスタは、クラスタ名の横にエラーアイコンが付された状態で表示されます。考えられる回避策と潜在的な問題の詳細な説明を表示するには、クラスタ名をクリックします。
限定公開クラスタの構成に問題があるためにアクセスできないクラスタに対してオペレーションを実行しようとすると、通知により、潜在的な問題と回避策の可能性を示すエラー メッセージが表示されます。
クラスタのプロキシ サーバーを構成する
パブリック エンドポイントが無効になっている GKE クラスタなど、コントロール プレーン API が一般公開されていない場合は、クラスタと同じネットワークまたは VPC 上のプロキシ サーバーを介してリクエストをコントロール プレーンにプロキシするように Cloud Code を構成できます。
- クラスタと同じネットワークにプロキシ サーバーを構成します(まだ構成していない場合)。Compute Engine VM を基本的なプロキシ サーバーとして設定する手順については、踏み台インスタンスを使用したプライベート クラスタへのリモート アクセスをご覧ください。詳細については、コントローラ アクセス用のネットワーク プロキシを使用した Google Kubernetes Engine プライベート クラスタの作成をご覧ください。
- Cloud Code に追加したクラスタの名前を右クリックし、[Set up Kubectl Proxying for cluster] をクリックします。表示に従って、プロキシ サーバーの名前を入力します。この名前は、クラスタの
proxy-urlフィールドに格納されています。Kubernetes ビューが再読み込みされ、接続されたクラスタが表示されます。
Kubernetes プロキシをキャンセルする
Kubernetes プロキシ用に構成したクラスタの名前を右クリックし、[クラスタ用の Kubectl プロキシをキャンセル] をクリックします。Cloud Code は、KubeConfig の proxy-url フィールドを設定解除することで、クラスタに対するリクエストのプロキシを停止します。
クラスタから Google Cloud 外部のリソースにアクセスする
GKE 限定公開クラスタのすべての構成で、インターネット アクセスのあるノードを提供していません。このため、クラスタは公共のインターネット上の API にアクセスできません。クラスタはプライベート Google アクセスで自動的に構成されます。これにより、たとえば、クラスタは Artifact Registry からイメージを pull できるようになります。ノードからの送信インターネット接続を許可する追加の構成がない場合、 Google Cloud の外部にある API とイメージ レジストリにはアクセスできません。これらの接続を実現するには、Cloud Code から VPC に Cloud NAT を設定します。
- クラスタを右クリックするか、コマンド パレット(
Ctrl/Cmd+Shift+Pを押下または、表示 > コマンド パレットをクリック)を使用して、プライベート GKE ノードにインターネットへの送信アクセスを許可する コマンドを実行します。 - ターミナルで
gcloud compute routers createコマンドとgcloud beta compute routers nats createコマンドを編集して、アプリケーションの値を指定します。 - コマンドを実行するには、[
Enter] を押します。 - 作成したルーターを管理、および削除するには、Cloud Router をご覧ください。
次のステップ
- 共有 Virtual Private Cloud ネットワークについて学習する。