Skaffold は、Kubernetes ネイティブ アプリケーションの継続的な開発を容易にするコマンドライン ツールです。Skaffold は、アプリケーションのビルド、push、デプロイのワークフローを処理するとともに、CI / CD パイプラインを作成するための構成要素を提供します。Skaffold は Cloud Code の機能を強化するエンジンです。
Skaffold プロジェクトは、通常 1 つの skaffold.yaml
構成を使用して、アプリケーションのビルドとデプロイ方法を記述しています。プロジェクトのサイズが大きい場合、アプリケーション パイプラインを別々の部分に分割すると便利です。
Skaffold は、同じ skaffold.yaml
ファイルに一緒に配置されて YAML ドキュメント セパレータ(---
)を使用して分離されるか、または上位レベルの skaffold.yaml
ファイルから参照される個別の skaffold.yaml
ファイルに配置される、複数の構成依存関係を定義することをサポートします。構成をモジュールにするには、.metadata.name
フィールドを使用して名前を付けます。
モジュールを使用すると、アプリケーションの一部を独立して開発およびデバッグできます。依存関係は、構成ファイルと特定のモジュールの間で定義することができます。 この機能を使用する手順については、アプリケーションの一部を独自に開発をご覧ください。
Skaffold モジュールを使用したアプリケーションのデバッグ
アプリケーション全体や定義した一連のモジュールの開発とデバッグを反復できます。Skaffold によって、モジュールの依存関係とデプロイ順序が管理されます。
Skaffold モジュール サンプルのスタートガイド
アプリケーションのモジュールを選択するには、一部の Skaffold モジュールとその依存関係の構築をご覧ください。
Skaffold モジュールをまだ使用しておらず、サンプルで機能をテストする場合は、frontend
と backend
にモジュール化されたゲストブック サンプルを参照してください。
さまざまなテクノロジーと言語を使用して開発され、Skaffold モジュールを使用して開発された大規模なエンタープライズ アプリケーションのサンプルについては、Bank of Anthos のサンプルをご覧ください。
一般的なユースケース
このセクションでは、IDE でモジュールをいつどのように使用するかを示す一般的なユースケースの例について説明します。
マイクロサービスの開発
あなたは、frontend
モジュールで作業するフロントエンド デベロッパーです。マイクロサービスとして、frontend
は backend
リポジトリに明示的なコードまたはライブラリの依存関係がありませんが、クラスタ内で backend
をデプロイして実行する必要があります。
frontend
モジュール定義を含む Skaffold ベースのプロジェクトを使用して、バックエンド チームもサービスをデプロイする共有開発クラスタへ Cloud Code IDE からデプロイとデバッグを行います。DevOps チームはこの共有クラスタを維持します。
ほとんどの場合、backend
コードの処理やデバッグ、Kubernetes 構成の更新は行いません。Skaffold は、frontend
に必要な他の構成をビルドしてデプロイします。frontend
モジュールのみを繰り返すように、Cloud Code のデプロイ構成を構成します。
また、ローカル クラスタに frontend
と backend
の両方をデプロイして、反復処理を高速化することもできます。
境界を越えたマイクロサービスの開発とデバッグ
複数のマイクロサービスを一緒にデバッグする必要がある場合、次の方法を利用できます。
- モジュールのソースコードを含むすべてのサブディレクトリが相対的に配置されている親ディレクトリを開きます
- デプロイ用のルート
skaffold.yaml
ファイルを選択します(構成ファイル) - ローカルで使用可能な
frontend
モジュールとbackend
モジュール(変更があった場合は、それぞれの Kubernetes 構成モジュール)でのみ反復処理するように、Cloud Code のデプロイ構成を構成します。
ローカル開発用に個別のルート skaffold.yaml
ファイルを作成し、そこに静的なデータサーバーを含めることもできます。
スマート モジュールの YAML 編集
あなたは、Skaffold モジュールを使用するマイクロサービス デベロッパーのチーム用のテンプレート リポジトリを構築する DevOps エンジニアです。Skaffold を手動で実行せずに、モジュール定義にエラーがないことを確認する必要があります(循環依存関係や一意でないモジュール名など)。Cloud Code IDE を使用して、Skaffold YAML 構成ファイルを編集します。