Cloud Code for VS Code Kubernetes の概要

このページでは、Cloud Code での Kubernetes 開発の概要について説明します。

Cloud Code の Kubernetes セクションを使用する

[Kubernetes] セクションでは、IDE から直接、クラスタ、ノード、ワークロードなどに関する情報にアクセスできます。また、Kubernetes セクションで現在のコンテキストの設定、ログのストリーミングと表示インタラクティブ ターミナルのオープン、リソースの説明の検索ができます。

Cloud Code 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 のサンプルを開くアイコン Kubernetes サンプル アプリケーションを開く
  • play_allow アプリケーションを実行する
  • デバッグ アイコン アプリケーションをデバッグする

リソース名をコピーする

Kubernetes リソース名(コンテナ名とクラスタ名を含む)をクリップボードにコピーできます。リソース名をコピーするには、リソースを右クリックして [リソース名をコピー] を選択します。

右クリック メニューを使用してリソース名をコピーする

リソースを更新する

Kubernetes セクションにより変更が監視され、更新を反映するために自動的に更新されます。Kubernetes リソースを強制的に更新して最新の情報を取得するには、リソースを右クリックして [更新] を選択します。

右クリック メニューを使用して Pod を更新する

[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 ファイルが、新しいエディタタブで開きます。

[YAML を表示] アイコンで開いた Kubernetes Pod YAML

ログの表示

Kubernetes リソースから Kubernetes セクション コンソールにログをストリーミングして表示し、進行状況をモニタリングできます。

を開きますログビューア、押してコマンド パレットを開きます。 Ctrl/Cmd+Shift+Pまたはクリック表示 > コマンド パレット次に、 Cloud Code: ログを表示します

コマンド パレットで [ログを表示] ダイアログ

ログビューアが新しいエディタタブで開きます。

ログビューアPod またはコンテナのログを表示するには、リソースを右クリックして [ログを表示] を選択します。

Pod のログの表示

ターミナルを起動する

Pod とコンテナの場合は、Pod またはコンテナを右クリックして [ターミナルを取得] を選択することで、インタラクティブ ターミナルを開くことができます。

インタラクティブ ターミナルを開く

リソース固有の操作

Kubernetes セクションには、クラスタ、Namespace、ノード、ワークロード(Deployment、レプリカセット、Pod、コンテナなど)、サービスと Ingress、構成(Secret、構成マップなど)、ストレージ(ボリュームなど)が表示されます。 Kubernetes セクションを使用すると、これらのリソースの一部に対して独自のアクションを実行できます。

クラスタ

  • Kubeconfig にクラスタを追加する: 既存の GKE または minikube クラスタを追加するか、新しいクラスタを作成します。

[クラスタを追加] ダイアログが表示され、使用するプロジェクトとクラスタを選択するか、新しいクラスタを作成できます。

クラスタ プラットフォームの選択

GKE クラスタを作成または選択する

  • アクティブなクラスタに設定: 指定されたクラスタをアクティブとして設定し、構成済みの kubectl コンテキストがデフォルトでこのクラスタにアクセスするようにします。

    右クリック メニューを使用してクラスタをアクティブとして設定する

Kubernetes セクションが自動的に更新され、該当するクラスタの横に Kubernetes の記号が表示されます。

クラスタに複数のコンテキストが構成されている場合は、使用可能なコンテキストの 1 つを選択して、現在のコンテキストとして設定できます。

Namespace

  • アクティブな名前空間に設定: 指定された Namespace をアクティブとして設定し、構成済みの kubectl コンテキストがデフォルトでこの Namespace にアクセスするようにします。

    アクティブとして設定する名前空間を右クリックします。

    右クリック メニューを使用して Namespace を現在のコンテキストとして設定する

この操作が成功すると、Kubernetes セクションが自動的に更新され、現在のコンテキストの一部であることを示すため、Namespace の横にアスタリスクが表示されます。

Kubernetes コンテキストは、クラスタ内の Namespace にすばやくアクセスするためのショートカットです。コンテキストは通常、minikube クラスタまたは GKE クラスタを起動すると自動的に作成されます。特定の Namespace に対して [現在のコンテキストに設定] オプションが表示されず、そのコンテキストを作成する場合は、ターミナルで kubectl config set-context コマンドを使用して、好みのクラスタ、ユーザー、Namespace でコンテキストを設定します。

Pod

  • ログの表示: Pod から Kubernetes セクション コンソールにログを表示します。
  • ターミナルの取得: Kubernetes セクション Console で Pod のターミナルを取得します。

    また、実行中の Pod では、ラベルの横に色付きのステータス マークが表示されます。

    • : Pod は失敗状態です。
    • 黄色: Pod が起動中または終了中です。
    • : Pod は正常で、実行中です
正常ステータスを示す Pod の横にある緑色のチェックマーク

コンテナ

デプロイメント

  • ログの表示: Deployment から Kubernetes セクション コンソールへのログを表示します。

    ライブ Deployment では、ラベルの横に色付きのステータス マーク、現在のレプリカ数、合計レプリカの数が表示されます。

    • 黄色: Deployment に最小限の可用性がないか、イメージに問題があります。
    • : Deployment は正常で、最小限の可用性が確保されていました。
正常なステータスを示す緑色のデプロイ アイコン

ノード

クラスタのノードの Namespace の横に色付きのステータス マークが表示されます。

  • 黄色: ノードにリソースの問題(メモリやディスクの可用性など)があります。
  • : ノードは正常です。

カスタム リソース定義(CRD)

Kubernetes セクションには、クラスタにインストールされ、使用可能なすべてのカスタム リソース定義(CRD)が表示されます。

セクションのカスタム リソース定義のリスト

次のステップ