Rancherは、GKE、EKS、AKSなどのパブリックプラットフォームや、Rancher独自の提供するRKEを使用して、Kubernetesクラスターを管理する機能で知られています。さらに、プロジェクト概念、ロールベースのアクセス制御、モニタリング、ログなどが追加され、各クラスターに対する管理タスクをグループ化し、具体的にします。このアイデアはさらに一歩進められ、アプリストアのようなスペース「Apps」を提供することで、すぐに使えるk8Sアプリケーションをカタログ設定を管理することでこのスペースに追加できます。
画像出典:Bigstack CubeCOS
ここでのアクションは依然として簡単で、アプリがパッケージ化されてクラスタで使用可能な公開リポジトリを探し、カタログURLに追加するだけです。これにより、アプリが「Apps -> Launch」ページに表示されるようになります。ここでは、日々の使用に便利な人気のあるK8Sアプリケーションを数十個見ることができます。
画像出典:Bigstack CubeCOS
これまで述べたことはすべて良いことですが、話はまだ終わりではありません。Rancher、K8S、Dockerなどのオープンプロジェクトを取り入れた人々は、遅かれ早かれ、100%自己ホスティングおよび管理可能なカスタマイズアプリケーションにも手を出すことになるでしょう。
自己ホスト型のRancherシステムに自分のアプリを公開する方法はどうでしょうか?
Rancherアプリの中には、説明、アイコン画像、YAMLファイル、設定ファイルなど、アプリのデプロイ方法を詳細に定義する多数のファイルがあります。これらすべてがアプリパッケージの構造を形成しますが、その形式はKubernetes(K8S)で理解可能な形式に準拠している必要があります。このパッケージは「チャート」と呼ばれ、KubernetesのパッケージマネージャーであるHelmによって消費されます。アプリを起動する前に、そのアプリはどこかに存在する必要があり、上記のようにアプリカタログにURLを追加することでアクセスできるようになります。この場所は「チャートリポジトリ」と呼ばれ、一定のディレクトリ/ファイルの配置を持つHTTPサーバーで、Rancherクライアントが index.html の内容をクエリして、対応するチャートをダウンロードできるようになっています。例として、RancherのK8Sクラスターで人気のChartMuseumリポジトリを実行している例があります。
$ helm repo add chartmuseum https://chartmuseum.github.io/charts
$ helm fetch chartmuseum/chartmuseum --version 3.6.2
$ helm --kubeconfig $KUBECONFIG upgrade --install chartmuseum chartmuseum-*.tgz -n chartmuseum --create-namespace --wait --wait-for-jobs -f chartmuseum-values.yaml
$ helm --kubeconfig $KUBECONFIG upgrade --install chartmuseum chartmuseum-*.tgz -n chartmuseum --create-namespace --wait --wait-for-jobs -f chartmuseum-values.yaml
これで、ChartMuseumリポジトリのPodが実行されています。プライベートIPとポートに応じて、URLを追加できますが、まだチャートはありません。自分のチャートを作成した後、空のChartMuseumリポジトリにプッシュしましょう。
$ curl --data-binary @${CM_CHART_FILE} ${URL}/api/charts
アプリカテゴリをリフレッシュすると、RancherのK8sアプリストアに自家製のアプリが新しく表示されます:
画像出典:Bigstack CubeCOS