このページでは、Cloud Code での Kubernetes 開発の概要について説明します。
Cloud Code で Kubernetes Explorer を使用する
Kubernetes Explorer ペインを使用すると、IDE から直接、クラスタ、ノード、ワークロードなどに関する情報にアクセスできます。 また、Kubernetes Explorer で現在のコンテキストの設定、ログのストリーミングと表示、インタラクティブ ターミナルのオープン、リソースの説明の検索ができます。
Cloud Code は、MacOS/Linux の $HOME/.kube
ディレクトリまたは Windows の %USERPROFILE%\.kube
ディレクトリにあるデフォルトの kubeconfig ファイルを使用して、Kubernetes リソースを取得します。新しい Kubeconfig ファイルは、Kubernetes Explorer 内から切り替えまたは追加できます。Kubeconfig ファイルは、Kubernetes クラスタの詳細、証明書、クラスタに対する認証用のシークレット トークンを含む YAML ファイルです。
デフォルトの kubeconfig 以外の kubeconfig ファイルを使用するには、kubeconfig ファイルの操作ガイドをご覧ください。
Kubernetes Explorer にアクセスする
Kubernetes リソースを表示して管理するには、右側のサイドパネルからアクセスできる Kubernetes Explore を使用します。または、[ツール] > [Cloud Code] >[Kubernetes] > [Cluster Explorer を表示] からもアクセスできます。開発、デバッグのセッションを開始すると、[Development sessions] セクションに構造化ロギングビューが表示されます。
基本操作
Kubernetes Explorer では kubectl
が使用されています。クラスタにアクセスするように kubectl
コンテキストを構成すると、アクティブまたは非アクティブのコンテキストに関係なく、Kubernetes Explorer を使用して、クラスタの追加、クラスタのすべての Namespace、リソース、ノードの参照を行うことができます。
Kubernetes の Explorer アイコンからアクセスできる Kubernetes の一般的なアクションは次のとおりです。
- サンプルから新しい Kubernetes アプリケーションを作成する
- Explorer を更新する
- ウェブブラウザで Cloud Code Kubernetes ドキュメントを開く
Kubernetes の Explorer アイコンからアクセスできる Kubernetes のその他の一般的なデバッグ アクションは次のとおりです。
- 現在の Run/Debug 構成を実行する。
- 実行構成をデバッグモードで起動する。
- アクティブなデバッグ セッションを停止する。
リソース名をコピーする
Kubernetes リソース名(コンテナ名とクラスタ名を含む)をクリップボードにコピーできます。リソース名をコピーするには、リソースを右クリックして [リソース名をコピー] を選択します。
リソースを更新する
Kubernetes Explorer により変更が監視され、更新を反映するために自動的に更新されます。Kubernetes リソースを強制的に更新して最新の情報を取得するには、リソースを右クリックして [更新] を選択します。
Kubernetes Explorer の更新ボタンを使用して、Kubernetes Explorer 全体を強制的に更新することもできます。リソースを説明する
クラスタ以外のリソースの詳細を表示するには、リソースを右クリックして [説明] を選択します。リソース情報は、Kubernetes Explorer Console パネルに表示されます。任意のリソースをクリックして、リソースの詳細を表示することもできます。メタデータが添付されている場合、そのメタデータは Kubernetes Explorer の [Resource Details] パネルに表示されます。
Skaffold のオプション
- Skaffold 構成 -
skaffold.yaml
構成ファイルを選択します。 プロジェクトにskaffold.yaml
がある場合は、自動的に検出されます。 - Deployment プロファイル -
skaffold.yaml
ファイルで構成可能なオプションからプロファイルを選択します。 - Environment variables - Skaffold デプロイ プロセスに渡す追加の環境変数を構成できます。Skaffold フラグは、このフィールドで使用する環境変数としても構成できます。利用可能な Skaffold の環境変数の包括的は一覧については、Skaffold CLI リファレンス ドキュメントをご覧ください。
- Verbosity - 出力の詳細レベルを
trace
、debug
、info
、warn
、error
、fatal
に設定できます。デフォルトの詳細レベルはwarn
です。
Kubernetes のオプション
Deployment Context - アプリケーションのデプロイに使用される Kubernetes コンテキストを表します。デプロイ コンテキストが指定されていない場合、デフォルトの動作は、現在のシステム コンテキスト(ある場合)にデプロイされます。
現在のコンテキストにデプロイしない場合は、[Run/Debug] の [Deployment] セクションで以下を選択できます。
- minikube クラスタにローカルでデプロイ - Cloud Code 管理の minikube クラスタを起動してアプリを実行し、デプロイが停止するとクラスタを停止します。minikube クラスタがすでに実行されている場合、Cloud Code は既存の minikube クラスタをデプロイに使用します。
[Switch context and deploy to] - 現在のコンテキストをデプロイ時にシステムの指定コンテキストに変更します。
Delete deployments when finished - プロセスが終了すると Kubernetes デプロイを削除します。これはデフォルトの動作です。あるいは、この設定を切り替えて、デプロイが削除されないようにすることもできます。
起動構成をカスタマイズする
アプリケーションの実行方法を設定するには、skaffold.yaml
ファイルをカスタマイズできます。
リモート YAML を表示する
Kubernetes Explorer から、クラスタ内のリソースの YAML を表示できます。Kubernetes Explorer で Pod などのリソースに移動し、リソース名を右クリックして [リモート YAML を表示] を選択します。指定したリソースに対応する YAML ファイルが、新しいエディタタブで開きます。
ログの表示
Kubernetes リソースから Kubernetes Explorer コンソールにログをストリーミングして表示し、進捗状況をモニタリングできます。
アプリケーションが通常モードまたは開発モードでビルドされ、実行されると、アプリケーションからのログ ストリーミングを IDE の内部からモニタリングできるようになります。
Kubernetes Explorer に移動して、特定のサービスのログを表示することもできます。
ログを表示するリソース(Pod、Deployment、サービスなど)を選択します。
リソースを右クリックして [Stream Logs] を選択します。また、Pod で実行されている個々のコンテナのログをストリーミングすることもできます。
これにより、Kubernetes Explorer Console にログが出力されます。
Deployment 内のリソースのステータスを表示するには、次の手順に従います。
Pod、デプロイメント、ノードのステータス: これらの Kubernetes リソースのラベルの横にはマークがあり、ステータスに応じて色分けされています。失敗状態は赤、開始中 / 終了中 / 警告は黄色、望ましい正常な状態は緑色です。
デプロイされたリソースの説明: デプロイされたリソースで
kubectl describe
を実行すると、右クリックして [説明] を選択することで、詳細を表示できます。
ターミナルを起動する
Pod とコンテナの場合は、Pod またはコンテナを右クリックして [ターミナルを取得] を選択することで、インタラクティブ ターミナルを開くことができます。
リソース固有の操作
Kubernetes Explorer には、クラスタ、Namespace、ノード、ワークロード(Deployment、レプリカセット、Pod、コンテナなど)、サービスと Ingress、構成(Secret、構成マップなど)、ストレージ(ボリュームなど)が表示されます。Kubernetes Explorer を使用すると、これらのリソースの一部に対して独自のアクションを実行できます。
サイドパネルから Kubernetes Explorer にアクセスするか、[ツール] > [Cloud Code] > [Kubernetes] > [Cluster Explorer を表示] に移動します。
デプロイされたリソースの詳細を表示するには、Kubernetes Explorer でリソースラベルを右クリックして、[説明] をクリックします。
クラスタ
- Google Kubernetes Engine クラスタを追加します。既存の Standard GKE クラスタか Autopilot GKE クラスタを追加するか、または Kubernetes Explorer の [A+ Add GKE Cluster] をクリックして、新しいクラスタを作成します。
[Add Cluster] ダイアログが表示されるので、使用するプロジェクトとクラスタを選択するか、新しいクラスタを作成します。
完了したら、[OK] をクリックして、Kubernetes Explorer で選択したクラスタとその基盤となるリソースにアクセスします。現在のコンテキストに設定: 指定されたクラスタをアクティブとして設定し、構成済みの
kubectl
コンテキストがデフォルトでこのクラスタにアクセスするようにします。
Kubernetes Explorer が自動的に更新され、該当するクラスタの横に Kubernetes の記号が表示されます。
クラスタに複数のコンテキストが構成されている場合は、使用可能なコンテキストの 1 つを選択して、現在のコンテキストとして設定できます。
Namespace
現在のコンテキストに設定: 指定された Namespace をアクティブとして設定し、構成済みの
kubectl
コンテキストがデフォルトでこの Namespace にアクセスするようにします。
Kubernetes コンテキストは、クラスタ内の Namespace にすばやくアクセスするためのショートカットです。コンテキストは通常、minikube クラスタまたは GKE クラスタを起動すると自動的に作成されます。特定の Namespace に対して [現在のコンテキストに設定] オプションが表示されず、そのコンテキストを作成する場合は、ターミナルで kubectl config set-context
コマンドを使用して、好みのクラスタ、ユーザー、Namespace でコンテキストを設定します。
Pod
- ログの表示: Pod から Kubernetes Explorer Console にログを表示します。
ターミナルの取得: Kubernetes Explorer Console で Pod のターミナルを取得します。
また、実行中の Pod では、ラベルの横に色付きのステータス マークが表示されます。
- 赤: Pod は失敗状態です。
- 黄色: Pod が起動中または終了中です。
- 緑: Pod は正常で、実行中です
コンテナ
- ログの表示: コンテナから Kubernetes Explorer Console にログを表示します。
- ターミナルの取得: Kubernetes Explorer Console でコンテナのターミナルを取得します。
デプロイメント
ログの表示: Deployment から Kubernetes Explorer Console にログを表示します。
ライブ Deployment では、ラベルの横に色付きのステータス マーク、現在のレプリカ数、合計レプリカの数が表示されます。
- 黄色: Deployment に最小限の可用性がないか、イメージに問題があります。
- 緑: Deployment は正常で、最小限の可用性が確保されていました。
ノード
クラスタのノードの Namespace の横に色付きのステータス マークが表示されます。
- 黄色: ノードにリソースの問題(メモリやディスクの可用性など)があります。
- 緑: ノードは正常です。
カスタム リソース定義(CRD)
Kubernetes Explorer には、クラスタにインストールされ、使用可能なすべてのカスタム リソース定義(CRD)が表示されます。
次のステップ
- コードサンプルから Kubernetes アプリケーションを作成してデプロイし、Cloud Code for IntelliJ for Kubernetes を使ってみる。
- ファイルの同期とホットリロードを使用して開発を高速化する。
- Cloud Code でアプリケーションをデバッグする。