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をより便利に、より安全に扱えるようになったと言えるでしょう。是非一度お試しください。
製品に関する質問や価格、ライセンス体系などにつきましてはこちらからお問い合わせください。