fbpx

HelmをサポートしたMirantis Secure Registry (MSR)を試してみよう #mirantis #kubernetes #k8s #helm

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

2021年4月12日にリリースされたMirantis Secure Registry 2.9.0(英文)にて、Kubernetesにおけるパッケージマネージャのデファクトスタンダードとしての立場を固めつつあるHelmのサポートが実装されました。

従来のMirantis Secure Registry (以下MSR、旧名Docker Trusted Registry (DTR))は、Dockerイメージの保管・共有・管理・セキュリティスキャンなどを行うプライベートレジストリ製品でした(詳しくはMirantis Secure Registryをご覧ください)。今回のHelmサポートにより、Mirantis製品のKubernetes対応がより強化されたと言えるでしょう。

本稿では「MKEとMSRをLaunchpadでVirtualboxにインストールしてみよう」にて構築した環境にて、MSRのHelmサポートをいくつか試してみます。

前提条件

MKEとMSRをLaunchpadでVirtualboxにインストールしてみよう」にて構築した環境を使用します。次の構成となっています:

  • node1 : 192.168.123.201 : DNSサーバ 兼 Launchpad/MKE/MSRクライアント
  • node2 : 192.168.123.202 : MKEマスター
  • node3 : 192.168.123.203 : MKEワーカー
  • node4 : 192.168.123.204 : MSR

node4のMSRにレポジトリを作成

node4のMSRのURLである https://192.168.123.204/ を開き、右上の「New repository」ボタンを押します。

Repositoryフォームに「example」と入力し、下の「Create」ボタンを押します。

これで「admin/example」レポジトリが作成できました。

node1にHelmをインストール

node1に、2021年8月時点で最新のHelm 3.6.3をインストールします。

$ curl -OL https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz -OL https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz.sha256sum
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13.0M 100 13.0M 0 0 9428k 0 0:00:01 0:00:01 --:--:-- 9429k
100 97 100 97 0 0 157 0 --:--:-- --:--:-- --:--:-- 157
$ sha256sum -c helm-v3.6.3-linux-amd64.tar.gz.sha256sum
helm-v3.6.3-linux-amd64.tar.gz: OK
$ tar xf helm-v3.6.3-linux-amd64.tar.gz
$ sudo mv linux-amd64/helm /usr/local/bin/
$ sudo chmod +x /usr/local/bin/helm
$ helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}

MSRにHelm Chartをプッシュするためのプラグインをインストールします。

$ helm plugin install https://github.com/chartmuseum/helm-push.git
Downloading and installing helm-push v0.9.0 ...
https://github.com/chartmuseum/helm-push/releases/download/v0.9.0/helm-push_0.9.0_linux_amd64.tar.gz
Installed plugin: push
$ helm plugin list
NAME VERSION DESCRIPTION
push 0.9.0 Push chart package to ChartMuseum

簡単なHelm Chartを作成し、MSRにプッシュ

helm createコマンドでHelm Chartの雛形を作成し、簡単なHelm Chartを作成します。

$ helm create example
Creating example
$ cd example
$ rm -rf templates/*
$ > values.yaml
$ cat > templates/example.yaml
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: example
image: nginx:1.21
$ helm package .
Successfully packaged chart and saved it to: /home/vagrant/example/example-0.1.0.tgz

MSRをHelmのレポジトリに追加します。今回はテストなのでTLS検証をスキップしています。

$ helm repo add example https://192.168.123.204/charts/admin/example --username admin --password adminadmin --insecure-skip-tls-verify
"example" has been added to your repositories
$ helm repo list
NAME URL
example https://192.168.123.204/charts/admin/example

それでは作成したHelm ChartをMSRにプッシュしてみましょう。ここでもTLS検証をスキップしています。

$ helm push example-0.1.0.tgz example --username admin --password adminadmin --insecure
Pushing example-0.1.0.tgz to example...
Done.

MSRでHelm Chartを確認

https://192.168.123.204/repositories/admin/example/charts を開くと、たった今プッシュしたHelm Chartが確認できます。

さらにView Chartを開いてみましょう。

Helm Chartの情報が確認できます。タブに並んでいる「Linting Summary」に注目してください。MSRにはHelmのLint機能が実装されています。このタブをクリックし、さらに「Lint Chart」ボタンをクリックしましょう。

内蔵のLintルールに従い、Helm Chart内で確認できたエラーや修正方法が表示されます。必要に応じて修正を行い、再プッシュしましょう。

まとめ

本稿ではMSR 2.9.0で実装されたHelm機能について簡単に見てみました。Helm Chartレポジトリをプライベートに持つことができるようになり、さらにHelm Chartを良い状態に保つためのLint機能も実装されたことで、MKEのKubernetesをより便利に、より安全に扱えるようになったと言えるでしょう。是非一度お試しください。

製品に関する質問や価格、ライセンス体系などにつきましてはこちらからお問い合わせください。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA