5

Java クライアントまたは GCloud API 自体を介して、そのクラスタの 1 つから現在の GKE プロジェクト ID を取得したいと考えています。

  • 特定の Google Cloud プロジェクトの GKE クラスタで Java コンテナを実行しています
  • ClusterManagerClientを適切な値で初期化しますClusterManagerSettings

-> このクライアントでこの特定のプロジェクト ID を取得することは可能ですか?

(各 GKE クラスタ内に、実行中の現在のプロジェクトを知ることができるグローバル コンテキストがあることを期待しています)。

ありがとうございました

4

1 に答える 1

7

上記のコメントで John Hanley が述べたように、クラスター内のノードのインスタンス メタデータを使用して、ノードが属するプロジェクトを特定できます。これを確認する最も簡単な方法は、(ノード上またはコンテナー内の) シェルから curl を使用することです。

プロジェクト名が必要な場合は、次の場所で確認できます。

curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"

プロジェクト番号が必要な場合は、次の場所で確認できます。

curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"

これはコンテナー API サーフェスの一部ではClusterManagerClientないため、使用する適切な API クライアントではありません。インスタンス メタデータをフェッチするクライアントを作成する必要があります。これはコンピューティング クライアント ライブラリの一部であると思われます。または、適切なヘッダーを追加すれば (上記のように) ローカル HTTP 要求を作成することもできます。ローカル メタデータにアクセスするには、特別なクライアント認証/承認が必要です。

于 2019-05-28T21:07:29.443 に答える