Rancher Fleetで簡単に実現!HelmOpsを使った継続的デプロイ(CD)の実践

はじめに

こんにちは、サイオステクノロジーの小野です。以前、HelmOpsについて解説しました。

HelmOps環境を構築するCDツールは様々な種類があります。(ex. Rancher Fleet, ArgoCD, Flux CD)

その中でもRancher FleetはHelmOpsを簡易に構築することが可能です。

今回はRancher FleetのHelmOps機能を使って、実際に自動デプロイできることを紹介したいと思います。

HelmOps設定

前提条件

  • Rancher環境でHelmOps実施
    • Rancher v2.13.3
    • Fleet v0.14.3

設定方法

Rancherの管理コンソールのRancher Fleet管理画面を開きます。左メニューのヨットマークが目印です。

Rancher Fleet画面

「Create Apps Bundle」を押下して、HelmOpsを作成することで、HelmOpsの設定が可能です。

HelmOpsを選択

HelmOps実践

以下のHelmアプリをHelmOpsでデプロイします。replicaCount数のPodが立ち上がり、ClusterIPのService設定で公開されているhttpbinのサンプルアプリをデプロイする例を考えます。

# Chart.yaml
apiVersion: v2
name: sample-app
type application
version: 0.1.0
appVersion: "1.0"
# valuse.yaml
replicaCount: 1

image:
  repository: kennethreitz/httpbin
  pullPolicy: IfNotPresent
  tag: "latest"

service:
  type: ClusterIP
  port: 80

このアプリをデプロイするために以下のようにHelmOpsに設定します。

  • Bundle名:test-helmops(HelmOpsのバンドル名を指定)
  • Release名:demo-sample(Helmのリリース名を指定)
  • Source
    • Type:Repository
    • Repository URL:<HelmリポジトリのURL>
    • Chart:sample-app(HelmOpsでデプロイするHelmチャート名を指定)
    • Version:>=0.1.0(一定バージョン以上を継続的にデプロイしたい場合は「>=0.1.0」のように設定する)
  • Values:設定しない
  • Deploy To:test-cluster(HelmOpsでデプロイする対象のクラスターを設定)
    • Additional Options.Target Namespace:demo-ns(デプロイするNamespaceを指定)
  • Authentication:None(Helmリポジトリの認証がある場合設定)
  • Polling:Enable Polling(継続的にデプロイする場合、Pollingを有効にする)

設定後、HelmOpsのBundleが作成されて、Rancher Fleetの管理画面からデプロイ状況を確認できます。

デプロイ状況を確認

デプロイした先のクラスター管理画面を開くと、自動的にサンプルアプリがデプロイされていることが確認できます。

サンプルアプリのデプロイを確認
Podが1個デプロイされている
80ポートのClusterIPで公開されている

Helmリポジトリ内のサンプルアプリを更新して、自動的にデプロイされているアプリも更新することを確認します。

サンプルアプリのChart.yamlとvalues.yamlを以下のように更新します。

# Chart.yaml
apiVersion: v2
name: sample-app
type application
version: 0.2.0
appVersion: "1.0"
# valuse.yaml
replicaCount: 2

image:
  repository: kennethreitz/httpbin
  pullPolicy: IfNotPresent
  tag: "latest"

service:
  type: ClusterIP
  port: 8080

更新した上記のファイルをHelmリポジトリにアップロードすると、以下のようにデプロイされているアプリも自動的に更新されることが確認できます。

Podが2台に更新されている
8080ポートのClusterIPで公開されるように更新されている

おわりに

Rancher FleetのHelmOpsについて解説しました。CD環境を構築するには大きなコストがかかりますが、HelmOpsはHelmリポジトリ内のチャートファイルを指定するだけで簡単にCD(継続的デプロイ)環境を構築することが可能です。ぜひ手軽に試してみてください。

参考

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。
エンジニア募集中!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です