このページでは、Cloud Code での Kubernetes 開発の概要について説明します。
Cloud Code の Kubernetes セクションを使用する
[Kubernetes] セクションでは、IDE から直接、クラスタ、ノード、ワークロードなどに関する情報にアクセスできます。また、Kubernetes セクションで現在のコンテキストの設定、ログのストリーミングと表示、インタラクティブ ターミナルのオープン、リソースの説明の検索ができます。
Cloud Code は、デフォルトの kubeconfig ファイル(MacOS/Linux の $HOME/.kube
ディレクトリまたは Windows の %USERPROFILE%\.kube
の下)を使用して Kubernetes リソースを取得します。Kubernetes セクション内から新しい Kubeconfig ファイルの切り替えや追加を行うことができます。Kubeconfig ファイルは、Kubernetes クラスタの詳細、証明書、クラスタに対する認証のシークレット トークンを含む YAML ファイルです。
デフォルトの kubeconfig 以外の kubeconfig ファイルを使用するには、kubeconfig ファイルの操作ガイドをご覧ください。
Kubernetes セクションにアクセスする
Kubernetes リソースを表示して管理するには、 Cloud Code をクリックして Kubernetes セクションを展開し、Kubernetes セクションにアクセスします。デバッグ セッションを表示する、またはサンプルアプリを作成するには、開発セッション セクションを展開します。デバッグしようとすると、ローカルでアプリケーションを実行およびデバッグするための認証情報を認証するよう求められる場合があります。
[Development sessions] セクションにアクセスする
開発セッションで、Kubernetes アプリケーションを実行またはデバッグするか、テンプレートを使用してサンプル アプリケーションを作成します。
開発、デバッグのセッションを開始すると、[Development sessions] セクションに構造化ロギングビューが表示されます。
開発セッションにアクセスするには、 [Cloud Code] をクリックし、[開発セッション] セクションを展開します。基本操作
Kubernetes セクションは kubectl
を利用しています。構成してkubectl
構成ファイルからクラスタにアクセスするために、Kubernetesセクションを追加して、アクティブまたは非アクティブのコンテキストに関係なく、クラスタで使用可能なすべての Namespace、リソース、ノードを参照します。
Kubernetes セクション
[Kubernetes] セクションのアイコンからアクセスできる一般的な Kubernetes のアクションは次のとおりです。
- add KubeConfig
- refresh Kubernetes セクションを更新する
- question_mark ウェブブラウザで Cloud Code Kubernetes ドキュメントを開く
開発セッション セクション
Kubernetes の [開発セッション] セクションのアイコンからアクセスできる Kubernetes のアクションは次のとおりです。
- Kubernetes サンプル アプリケーションを開く
- play_allow アプリケーションを実行する
- アプリケーションをデバッグする
リソース名をコピーする
Kubernetes リソース名(コンテナ名とクラスタ名を含む)をクリップボードにコピーできます。リソース名をコピーするには、リソースを右クリックして [リソース名をコピー] を選択します。
リソースを更新する
Kubernetes セクションにより変更が監視され、更新を反映するために自動的に更新されます。Kubernetes リソースを強制的に更新して最新の情報を取得するには、リソースを右クリックして [更新] を選択します。
[Kubernetes] セクションの更新ボタンを使用して、Kubernetes セクション全体を強制的に更新することもできます。リソースを説明する
クラスタ以外のリソースの詳細を表示するには、リソースを右クリックして [Describe] を選択します。ターミナルが開き、リソース情報が表示されます。起動構成をカスタマイズする
アプリケーションの実行方法を設定するには、skaffold.yaml
ファイルをカスタマイズできます。
.vscode/launch.json
ファイルの cloudcode.kubernetes
構成で次のフィールドを指定して、起動を構成することもできます。
- skaffoldConfig: ビルドとデプロイの設定を含む Skaffold 構成ファイルを指定します。
- profile: 使用する Skaffold プロファイルを指定します。定義されていない場合は、デフォルトのプロファイルが使用されます。
- imageRegistry: イメージを push するイメージ レジストリを指定します。
- watch: ワークスペース内の変更を監視し、アプリケーションを再実行するかどうかを指定します。明示的に false に設定されていない限り、デフォルトでは true です。
- cleanUp: アプリケーションの終了後にクラスタにデプロイされた Kubernetes リソースを削除するかどうかを指定します。明示的に false に設定されていない限り、デフォルトでは true です。
- portForward: クラスタに公開された Kubernetes リソースをローカルマシンにポート転送するかどうかを指定します。明示的に false に設定されていない限り、デフォルトでは true です。
リモート YAML を表示する
クラスタ内のリソースの YAML を表示するには、リソースを選択するかカーソルを合わせると、次の情報が表示されます。 YAML を編集すると YAML を表示アイコンが表示されます。[YAML を表示] ボタンを選択すると、指定したリソースに対応する YAML ファイルが、新しいエディタタブで開きます。ログの表示
Kubernetes リソースから Kubernetes セクション コンソールにログをストリーミングして表示し、進行状況をモニタリングできます。
を開きますログビューア、押してコマンド パレットを開きます。Ctrl/Cmd+Shift+P
またはクリック表示 > コマンド パレット次に、
Cloud Code: ログを表示します。
ログビューアが新しいエディタタブで開きます。
Pod またはコンテナのログを表示するには、リソースを右クリックして [ログを表示] を選択します。
ターミナルを起動する
Pod とコンテナの場合は、Pod またはコンテナを右クリックして [ターミナルを取得] を選択することで、インタラクティブ ターミナルを開くことができます。
リソース固有の操作
Kubernetes セクションには、クラスタ、Namespace、ノード、ワークロード(Deployment、レプリカセット、Pod、コンテナなど)、サービスと Ingress、構成(Secret、構成マップなど)、ストレージ(ボリュームなど)が表示されます。 Kubernetes セクションを使用すると、これらのリソースの一部に対して独自のアクションを実行できます。
クラスタ
- Kubeconfig にクラスタを追加する: 既存の GKE または minikube クラスタを追加するか、新しいクラスタを作成します。
[クラスタを追加] ダイアログが表示され、使用するプロジェクトとクラスタを選択するか、新しいクラスタを作成できます。
アクティブなクラスタに設定: 指定されたクラスタをアクティブとして設定し、構成済みの
kubectl
コンテキストがデフォルトでこのクラスタにアクセスするようにします。
Kubernetes セクションが自動的に更新され、該当するクラスタの横に Kubernetes の記号が表示されます。
クラスタに複数のコンテキストが構成されている場合は、使用可能なコンテキストの 1 つを選択して、現在のコンテキストとして設定できます。
Namespace
アクティブな名前空間に設定: 指定された Namespace をアクティブとして設定し、構成済みの
kubectl
コンテキストがデフォルトでこの Namespace にアクセスするようにします。アクティブとして設定する名前空間を右クリックします。
Kubernetes コンテキストは、クラスタ内の Namespace にすばやくアクセスするためのショートカットです。コンテキストは通常、minikube クラスタまたは GKE クラスタを起動すると自動的に作成されます。特定の Namespace に対して [現在のコンテキストに設定] オプションが表示されず、そのコンテキストを作成する場合は、ターミナルで kubectl config set-context
コマンドを使用して、好みのクラスタ、ユーザー、Namespace でコンテキストを設定します。
Pod
- ログの表示: Pod から Kubernetes セクション コンソールにログを表示します。
ターミナルの取得: Kubernetes セクション Console で Pod のターミナルを取得します。
また、実行中の Pod では、ラベルの横に色付きのステータス マークが表示されます。
- 赤: Pod は失敗状態です。
- 黄色: Pod が起動中または終了中です。
- 緑: Pod は正常で、実行中です
コンテナ
デプロイメント
ログの表示: Deployment から Kubernetes セクション コンソールへのログを表示します。
ライブ Deployment では、ラベルの横に色付きのステータス マーク、現在のレプリカ数、合計レプリカの数が表示されます。
- 黄色: Deployment に最小限の可用性がないか、イメージに問題があります。
- 緑: Deployment は正常で、最小限の可用性が確保されていました。
ノード
クラスタのノードの Namespace の横に色付きのステータス マークが表示されます。
- 黄色: ノードにリソースの問題(メモリやディスクの可用性など)があります。
- 緑: ノードは正常です。
カスタム リソース定義(CRD)
Kubernetes セクションには、クラスタにインストールされ、使用可能なすべてのカスタム リソース定義(CRD)が表示されます。
次のステップ
- Cloud Code for VS Code for Kubernetes を使ってみる。コードサンプルから Kubernetes アプリケーションを作成してデプロイします。
- ファイルの同期とホットリロードを使用して開発を高速化する。
- Cloud Code でアプリケーションをデバッグする。