コンテンツに移動
アプリケーション開発

Skaffold v2 の一般提供を開始: さらに高まる開発者の生産性

2022年11月7日
https://storage.googleapis.com/gweb-cloudblog-publish/images/appdev.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2022 年 10 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。

長年にわたり、Google は開発者の生産性の最大化に取り組んできました。2019 年には、コンテナ化されたアプリケーションの継続的な開発とデリバリーを円滑にするコマンドライン ツールである Skaffold の一般提供を発表しました。本日、Google は、Skaffold V2 の一般提供を開始いたします。

Skaffold V2 は、対応デプロイツールとして Cloud Run を導入することで、Skaffold の対応プラットフォームとアーキテクチャを拡張します。さらに、ARM と x86 の両方のアーキテクチャからのビルドと、これらのアーキテクチャへのデプロイをサポートするようになりました。また、skaffold render フェーズ、verify フェーズ、および kpt 統合の導入により、CI / CD および GitOps ワークフローの高度なサポートも提供します。何よりも素晴らしいのは、Skaffold のすべての既存の構成は Skaffold V2 と完全な互換性があり、skaffold fix を実行するだけで V1 からのアップグレードが簡単に完了することです。

拡張されたプラットフォーム サポート

Skaffold は当初から、kubectl または Helm デプロイツールを使用して、Kubernetes へのアプリケーションのデプロイをサポートしてきました。Skaffold を使用して Kubernetes にデプロイすると、反復型開発と CI / CD 向けの再利用可能な構成要素により、ソースから本番環境までの速度が向上するという利点が得られます。

今回はこうした利点を、Google のサーバーレス コンテナ ランタイムである Cloud Run でも得られるようになります。Cloud Run は、コンテナ化されたアプリケーション用のフルマネージド プラットフォームを提供し、自動リソース スケーリングや統合ストレージ、セキュリティ、モニタリング ソリューションなどの機能を備えています。

Skaffold と Cloud Run は簡単に利用を開始できます。必要なものは、Cloud Run サービス構成と、skaffold.yaml の少しのアップデートだけです。Skaffold は、Cloud Deploy における Cloud Run のサポートも強化します。詳細については、こちらのドキュメントをご覧ください。

新しいデプロイ ターゲットに加えて、Skaffold V2 と互換性のあるイメージ アーキテクチャ構成の拡張により、開発者は、イメージをビルドするマシンのアーキテクチャに、イメージを実行するマシンのアーキテクチャとの互換性があることを確認できます。イメージをビルドする前に、ローカルマシンのアーキテクチャとターゲット Kubernetes クラスタを Skaffold でインテリジェントにチェックできるようになります。これにより、手動で構成を行わなくても、x86 または ARM マシンから ARM、x86 またはマルチ アーキテクチャ クラスタにデプロイすることが可能になります。

Cloud Run へのデプロイと ARM ワークロードの管理の詳細については、それぞれのドキュメントをご覧ください。

CI / CD と DevOps の簡素化

Skaffold は、反復可能なビルド、タグ付け、デプロイのステップに対応する再利用可能な構成要素を提供することで、開発者の CI / CD および DevOps ワークフローの実装をサポートします。Skaffold を使用すれば、環境固有の構成の実装に Skaffold プロファイルを活用して、同じ構成を開発と本番で共有できます。

Skaffold V2 では、Skaffold render フェーズが deploy フェーズと区別されます。Skaffold render フェーズの出力は、タグ付けされたイメージ名とテンプレート化された値でハイドレートされたマニフェストであり、GitOps ワークフローの一部としてデプロイする前にソース管理で永続化できます。

render フェーズに加えて、Skaffold V2 の新しい verify フェーズは、デプロイ後のテストの構成に役立ちます。このフェーズは、一連のテストコンテナを構成するために使用できます。こうしたコンテナは、デプロイの成功を確認するために監視されます。これにより、開発者は一連のテストを手動で実行するのではなく、この検証ステップを再利用可能なデプロイ パイプラインに統合できます。

最後に、Skaffold V2 の対応レンダラとして kpt が導入されたことで、マニフェストを順番に変換および検証するための洗練された構文が提供され、GitOps ワークフローにおけるカスタマイズと検証の幅が広がりました。Skaffold を使用すれば、kpt の構成を個別に記述する必要なく kpt の変換および検証機能を利用できるため、kpt を導入しやすくなります。導入は、既存の skaffold.yaml にいくつかのスタンザを追加するだけで完了します。Kpt は、Helm や Kustomize といったレンダラとの Skaffold の既存の統合と併せて使用することもできます。

Skaffold render フェーズverify フェーズkpt 統合の詳細については、それぞれのドキュメントをご覧ください。

Skaffold V2 へのアップグレード

Skaffold V2 は簡単に利用を開始できます。Skaffold を初めて利用する場合は、V2 インストール ガイドでプラットフォーム固有のインストール手順を確認してください。

既存の Skaffold ユーザーの場合、Skaffold V2 へのアップグレードはシンプルで、手動で構成を変更する必要はありません。既存の Skaffold 構成は、引き続き Skaffold V2 でそのまま機能します。Skaffold V2 バイナリをダウンロードし、skaffold fix を実行して構成を更新するだけで完了します。詳細については、V2 アップグレード ガイドをご覧ください。

また、Skaffold V2 に導入されたすべての新機能を利用するための詳細な手順については、こちらのドキュメントをご覧ください。

次のステップ

サーバーレス ワークロードに Skaffold の機能を活用することにご興味がある方は、Cloud Run で Skaffold V2 を使用する方法を説明したこちらのドキュメントをご覧ください。

また、Skaffold を活用して再利用可能なデプロイ パイプラインを構築する、Google のフルマネージド継続的デリバリー サービスである Cloud Deploy についてもご確認ください。

皆様からのご意見やご質問をお待ちしております。いつものように GitHubSlack からお問い合わせいただけます。


- プロダクト マネージャー Russell Wolf
- ソフトウェア エンジニア Maggie Neterval
投稿先