このページでは、Cloud Code での Kubernetes 開発の概要について説明します。
Cloud Code で Kubernetes Explorer を使用する
Kubernetes Explorer ペインを使用すると、IDE から直接、クラスタ、ノード、ワークロードなどに関する情報にアクセスできます。 また、Kubernetes Explorer で現在のコンテキストの設定、ログのストリーミングと表示、インタラクティブ ターミナルのオープン、リソースの説明の検索ができます。
![Cloud Code の Kubernetes Explorer](https://cloud.google.com/static/code/docs/shell/images/shell-dev-cluster-k8s-sections.png?authuser=3&hl=ja)
Cloud Code は、MacOS/Linux の $HOME/.kube
ディレクトリまたは Windows の %USERPROFILE%\.kube
ディレクトリにあるデフォルトの kubeconfig ファイルを使用して、Kubernetes リソースを取得します。新しい Kubeconfig ファイルは、Kubernetes Explorer 内から切り替えまたは追加できます。Kubeconfig ファイルは、Kubernetes クラスタの詳細、証明書、クラスタに対する認証用のシークレット トークンを含む YAML ファイルです。
デフォルトの kubeconfig 以外の kubeconfig ファイルを使用するには、kubeconfig ファイルの操作ガイドをご覧ください。
Kubernetes Explorer にアクセスする
Kubernetes リソースを表示して管理するには、[Development sessions] セクションにアクセスする
開発セッションを使用して、Kubernetes アプリケーションを実行またはデバッグするか、テンプレートを使用してサンプル アプリケーションを作成します。
開発、デバッグのセッションを開始すると、[Development sessions] セクションに構造化ロギングビューが表示されます。
基本操作
Kubernetes Explorer では kubectl
が使用されています。クラスタにアクセスするように kubectl
コンテキストを構成すると、アクティブまたは非アクティブのコンテキストに関係なく、Kubernetes Explorer を使用して、クラスタの追加、クラスタのすべての Namespace、リソース、ノードの参照を行うことができます。
クラスタ セクション
Kubernetes Explorer の [クラスタ] セクションのアイコンからアクセスできる一般的な Kubernetes のアクションは次のとおりです。
- add KubeConfig にクラスタを追加する
- refresh Kubernetes Explorer を更新する
- question_mark ウェブブラウザで Cloud Code Kubernetes ドキュメントを開く
開発セッション セクション
Kubernetes の [開発セッション] セクションのアイコンからアクセスできる Kubernetes のアクションは次のとおりです。
Kubernetes サンプル アプリケーションを開く
- play_allow アプリケーションを実行する
アプリケーションをデバッグする
リソース名をコピーする
Kubernetes リソース名(コンテナ名とクラスタ名を含む)をクリップボードにコピーできます。リソース名をコピーするには、リソースを右クリックして [リソース名をコピー] を選択します。
![右クリック メニューを使用してリソース名をコピーする](https://cloud.google.com/static/code/docs/shell/images/shell-copy-resource-name.png?authuser=3&hl=ja)
リソースを更新する
Kubernetes Explorer により変更が監視され、更新を反映するために自動的に更新されます。Kubernetes リソースを強制的に更新して最新の情報を取得するには、リソースを右クリックして [更新] を選択します。
![右クリック メニューを使用して Pod を更新する](https://cloud.google.com/static/code/docs/shell/images/shell-refresh-resource.png?authuser=3&hl=ja)
リソースを説明する
クラスタ以外のリソースの詳細を表示するには、リソースを右クリックして [説明] を選択します。ターミナルが開き、リソース情報が表示されます。![右クリック メニューでリソースの詳細を説明する](https://cloud.google.com/static/code/docs/shell/images/shell-describe-resource.png?authuser=3&hl=ja)
起動構成をカスタマイズする
アプリケーションの実行方法を設定するには、skaffold.yaml
ファイルをカスタマイズできます。
リモート YAML を表示する
クラスタ内のリソースの YAML を表示するには、リソースを選択するかカーソルを合わせると、次の情報が表示されます。![](https://cloud.google.com/static/code/docs/vscode/images/vscode-edit-yaml-icon.png?authuser=3&hl=ja)
![](https://cloud.google.com/static/code/docs/vscode/images/vscode-view-yaml-icon.png?authuser=3&hl=ja)
![[YAML を表示] アイコンを使用して開いた Kubernetes サービス YAML](https://cloud.google.com/static/code/docs/shell/images/shell-view-yaml.png?authuser=3&hl=ja)
ログの表示
Kubernetes リソースから Kubernetes Explorer コンソールにログをストリーミングして表示し、進捗状況をモニタリングできます。
ログビューアを開くには、Ctrl/Cmd+Shift+P
を押してコマンド パレットを開くか、[View] > [Command Palette] をクリックして [Cloud Code: View Logs] を選択します。
新しいエディタタブでログビューアが開きます。
Pod またはコンテナのログを表示するには、リソースを右クリックして [ログを表示] を選択します。
ターミナルを起動する
Pod とコンテナの場合は、Pod またはコンテナを右クリックして [ターミナルを取得] を選択することで、インタラクティブ ターミナルを開くことができます。
![インタラクティブ ターミナルを開く](https://cloud.google.com/static/code/docs/shell/images/shell-get-terminal.png?authuser=3&hl=ja)
リソース固有の操作
Kubernetes Explorer には、クラスタ、Namespace、ノード、ワークロード(Deployment、レプリカセット、Pod、コンテナなど)、サービスと Ingress、構成(Secret、構成マップなど)、ストレージ(ボリュームなど)が表示されます。Kubernetes Explorer を使用すると、これらのリソースの一部に対して独自のアクションを実行できます。
クラスタ
- KubeConfig にクラスタを追加: 既存の GKE クラスタまたは minikube クラスタを追加するか、新しいクラスタを作成します。
[Add Cluster] ダイアログが表示されるので、使用するプロジェクトとクラスタを選択するか、新しいクラスタを作成します。
![クラスタ プラットフォームの選択](https://cloud.google.com/static/code/docs/shell/images/shell-cluster-choose-platform.png?authuser=3&hl=ja)
アクティブ クラスタに設定: 指定されたクラスタをアクティブとして設定し、構成済みの
kubectl
コンテキストがデフォルトでこのクラスタにアクセスするようにします。
Kubernetes Explorer が自動的に更新され、該当するクラスタの横に Kubernetes の記号が表示されます。
クラスタに複数のコンテキストが構成されている場合は、使用可能なコンテキストの 1 つを選択して、現在のコンテキストとして設定できます。
Namespace
アクティブな Namespace に設定: 指定された Namespace をアクティブとして設定し、構成済みの
kubectl
コンテキストがデフォルトでこの Namespace にアクセスするようにします。アクティブに設定する Namespace を右クリックします。
Kubernetes コンテキストは、クラスタ内の Namespace にすばやくアクセスするためのショートカットです。コンテキストは通常、minikube クラスタまたは GKE クラスタを起動すると自動的に作成されます。特定の Namespace に対して [現在のコンテキストに設定] オプションが表示されず、そのコンテキストを作成する場合は、ターミナルで kubectl config set-context
コマンドを使用して、好みのクラスタ、ユーザー、Namespace でコンテキストを設定します。
Pod
- ログの表示: Pod から Kubernetes Explorer Console にログを表示します。
ターミナルの取得: Kubernetes Explorer Console で Pod のターミナルを取得します。
また、実行中の Pod では、ラベルの横に色付きのステータス マークが表示されます。
- 赤: Pod は失敗状態です。
- 黄色: Pod が起動中または終了中です。
- 緑: Pod は正常で、実行中です
![Pod の横の正常な状態を示す緑色のチェックマーク](https://cloud.google.com/static/code/docs/vscode/images/vscode-pod-status-green.png?authuser=3&hl=ja)
コンテナ
- ログの表示: コンテナから Kubernetes Explorer Console にログを表示します。
- ターミナルの取得: Kubernetes Explorer Console でコンテナのターミナルを取得します。
デプロイメント
ログの表示: Deployment から Kubernetes Explorer Console にログを表示します。
ライブ Deployment では、ラベルの横に色付きのステータス マーク、現在のレプリカ数、合計レプリカの数が表示されます。
- 黄色: Deployment に最小限の可用性がないか、イメージに問題があります。
- 緑: Deployment は正常で、最小限の可用性が確保されていました。
![正常な状態を示す緑色の Deployment アイコン](https://cloud.google.com/static/code/docs/vscode/images/vscode-deploy-status-green.png?authuser=3&hl=ja)
ノード
クラスタのノードの Namespace の横に色付きのステータス マークが表示されます。
- 黄色: ノードにリソースの問題(メモリやディスクの可用性など)があります。
- 緑: ノードは正常です。
カスタム リソース定義(CRD)
Kubernetes Explorer には、クラスタにインストールされ、使用可能なすべてのカスタム リソース定義(CRD)が表示されます。
![Explorer のカスタム リソース定義のリスト](https://cloud.google.com/static/code/docs/vscode/images/vscode-crd-list.png?authuser=3&hl=ja)
次のステップ
- コードサンプルから Kubernetes アプリケーションを作成してデプロイし、Cloud Code for Cloud Shell for Kubernetes を使ってみる。
- ファイルの同期とホットリロードを使用して開発を高速化する。
- Cloud Code でアプリケーションをデバッグする。