コンテンツに移動
Containers & Kubernetes

kubectl 認証に関して GKE v1.25 から適用される変更について

2022年2月22日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 2 月 12 日に、Google Cloud blog に投稿されたものの抄訳です。

kubectl 認証に関する重要な変更が GKE v1.25 から適用

Google が開発した Kubernetes は、大規模なオープンソース コミュニティのおかげで、いまやコンテナ オーケストレーションの事実上の標準になっています。

オープンソース バージョンの Kubernetes と Google などのサービス プロバイダによってカスタマイズされているバージョンの Kubernetes とを区別するために、オープンソース コミュニティは v1.25 以降、現在 OSS コードベースに存在しているプロバイダ固有のコードすべてを削除することを求めています。

これにより v1.25 で OSS コミュニティのサーバー側で多数の変更を加えることが必要になりますが、クライアント側でも 1 つの影響があり、それは kubectl に対するものです。この投稿では、v1.25 のリリース後に複雑にならないように今すぐ行える変更について概要を説明します。

新しい kubectl プラグイン「gke-gcloud-auth-plugin」

既存バージョンの kubectl と Kubernetes カスタム クライアントには、クライアントと Google Kubernetes Engine との間の認証を管理するためのプロバイダ固有のコードが含まれています。v1.25 以降、このコードが OSS kubectl の一部として含まれることはなくなります。GKE ユーザーは、別の認証プラグインをダウンロードし、それを使用して GKE 固有のトークンを生成することが必要になります。この新しい gke-gcloud-auth-plugin は、Kubernetes client-go クルデンシャル プラグイン メカニズムを使って、GKE に対応できるよう kubectl の認証機能を拡張します。kubectl ではすでにプラグインがサポートされているので、v1.25 がリリースされる前に、この新しいメカニズムに今すぐ切り替えることができます。

以下に、この新しいバイナリのインストール手順と詳細な技術情報を示します。

kubectl 認証プラグインのインストール手順

kubectl または Kubernetes カスタム クライアントを使用しているすべてのシステムに gke-gcloud-auth-plugin バイナリをインストールする必要があります。このバイナリをインストールするには、以下のいずれかのメソッドを使用します。

「gcloud components install」を使用してインストールする

次のコマンドを実行します。

読み込んでいます...

注: gcloud は、このバイナリを Windows にインストールする場合におすすめします。  

DEB ベースのシステム向けの「apt-get install」を使用してインストールする

次のコマンドを実行します。

読み込んでいます...

注: apt-get install を使用する際、他の CLOUD-SDKコンポーネントのインストールに Google Cloud-Sdk リポジトリ ソースがまだ設定されていないと、これを設定することが必要な場合があります。

RPM ベースのシステム向けの「yum install」を使用してインストールする

次のコマンドを実行します。

読み込んでいます...

注: yum install を使用する際、他の CLOUD-SDKコンポーネントのインストールに Google Cloud-Sdk リポジトリ ソースがまだ設定されていないと、これを設定することが必要な場合があります。

インストールを検証する

このバイナリが適切にインストールされていれば、PATH で見つけることができます。インストールが正常に完了したことを検証するには、新しいターミナルを開いて以下のコマンドを実行します。

読み込んでいます...

Windows の場合は、以下のコマンドを実行します。

読み込んでいます...

v1.25 のリリース前に新しいプラグインで kubectl を実行する

kubectl で認証に、デフォルトのプロバイダ固有のコードではなく、新しいバイナリ プラグインが使用されるようにするには、以下の手順を行います。

1. USE_GKE_GCLOUD_AUTH_PLUGIN=True を ~/.bashrc(または Windows の環境変数)に設定します。

2. 次のコマンドを実行します。

読み込んでいます...

Windows 環境の場合、新しいターミナルを開始します。

3. gcloud を最新バージョンに更新します。

読み込んでいます...

4. 次のコマンドを実行します。

読み込んでいます...

CLUSTER_NAME は、使用するクラスタの名前に置き換えます。これにより、クラスタの構成が client-go クルデンシャル プラグイン構成に強制的に更新されます。

起こりうる kubectl プラグインのエラー

v1.25 のリリース後に、またはプラグインが適切にインストールされていない場合に、以下のいずれかのエラー メッセージが表示されることがあります。

読み込んでいます...

このようなエラーが表示された場合は、プラグインを再インストールして、インストールを検証してください。

以下のエラーの場合:

読み込んでいます...

このエラーは、v1.25 以降のバージョンの OSS コードベースで構築されている kubectl バージョンまたは Kubernetes カスタム クライアント バージョンを使用していて、プラグインをインストールしていない場合に表示されます。

このエラーを修正するには、以下の手順を行います。

  1. 前述のとおりに gke-gcloud-auth-plugin をインストールします。

  2. cloud-sdk gcloud components update を使用して、最新の gcloud ツールに更新します。

以下のコマンドを再実行して、クラスタの構成を更新します。
読み込んでいます...
  1. CLUSTER_NAME は、使用するクラスタの名前に置き換えます。

kubectl 認証と新しいプラグインの詳細については、Cloud のドキュメントをご覧になるか、サポートケースを登録してください。

- ソフトウェア エンジニア Kiran Tumkur
- プロダクト マネージャー Neal Goldman

投稿先