LoginSignup
1
1

More than 3 years have passed since last update.

開発環境のkubernetesにskaffoldを使って自動デプロイ

Posted at

skaffoldとは

googleによって開発されている、kubernetesへの継続的な開発を容易にするコマンドラインツールです。
開発段階では、アプリケーションのソースコードの変更を検知して、
DockerコンテナのBuild→コンテナレジストリーへのPush→kubernetesクラスタへdeploy
を行ってくれます。
本番環境では、CI/CDを担当させる事が可能です。

メリット

  • Google公式なので自作ビルドツールより安心
  • 煩雑なimageのtag管理を自動でやってくれる
  • 導入が簡単

デメリット

  • VolumeMountに比べると多少遅い
  • ビルドするファイルサイズが大きい場合、遅延が顕著になる

導入方法

skaffoldのリポジトリにskaffold用の設定サンプルファイルがあるのでそれを編集します。
サンプルファイル>>

コマンド

Skaffold dev

$ skaffold dev

ソースコード及びコードとdockerイメージの依存関係を監視し、変更を検知するとアプリケーションのビルド/プッシュ/デプロイを実行します。

Skaffold run

$ skaffold run

デプロイしたアプリケーションを継続的に更新しますが、エラー発生時に終了します。以下の用途で利用できます。

構成ファイル

skaffold.yaml
apiVersion: skaffold/v1alpha2
kind: Config
build:
  tagPolicy:
    sha256: {} #コンテナのTagをハッシュ
  artifacts:
  - imageName: k8sdemo/php-apache # apache-phpのコンテナ
    workspace: ./docker/apache-php # apache-phpのworkSpace
  local:
deploy:
  kubectl:
    manifests:
      - ./templates/main.yaml # 監視対象のyamlファイルを指定
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1