Member-only story

Skaffoldを使ったリアルタイムのKubernetes開発

gavin.zhou
11 min readJun 18, 2020

--

クラウドネイティブアプリケーション開発のための開発ツールやCI/CDツールには、今は不満はありません。特に、Kubernetesと連携してCDパイプラインを管理することになると、開発者たちはとても満足しています。その中の一つのツールに Skaffoldがあります。

これ以前にも様々の記事で述べたように、Kubernetesはとてもフレキシブルですが、最も作業しやすいデプロイ環境ではありません。昔は、マイナーなコード変更にはコンテナの再構築やコンテナイメージの再デプロイメントが必要でした。

しかし、Skaffoldが登場でそれが変わりました。プロセスを効率化するために特別に設計されたコマンドラインツールがSkaffoldです。Skaffoldは実際にKubernetes開発をリアルタイムプロセスに変え、ローカルのコードソースを積極的に監視し、アプリケーションの再構築と再デプロイメントを自動的に処理します。

A Quick Overview

Skaffold を使ってリアルタイムの開発エクスペリメントを作り、CI/CD ワークフローをさらに最適化する方法について説明する前に、このツールについて理解しておく必要がある点がいくつかあります。まず第一に、Skaffold はもともとアプリケーションのビルドとデプロイのプロセスを単純化するために設計されました。しかし、今日では、このツールはそれ以上のことができるものとなっています。

Skaffold はいくつかの重要なステップを処理します。ローカルソースからコードの変更が検出されると、一般的なツールや戦略を使って自動的にアーティファクトをビルドします。Skaffold は次のものをビルドすることができます。

アーティファクトは、公開前にテストされ、タグ付けされます。このように余分なステップを踏むことで、悪質なコード変更がステージング環境や本番環境に悪影響を及ぼすのを防ぐことができます。Skaffoldは、Goテンプレートと環境変数にも対応しています。

アーティファクトが公開されると、Skaffold は kubectl や Helm などのツールを使ってデプロイを行います。すべてはクラウドクラスタではなく、自分のところで行われるので、Skaffoldは常に最高のパフォーマンスを発揮し、自分の環境に大きなストレスをかけません。

--

--

No responses yet