10のHelmチュートリアルでKubernetesの旅へ

 

Kubernetesの成長は目覚ましく、K8sアプリケーションの重要性と複雑さは増す一方です。今日、単一のアプリケーションの設定をするだけでも相互依存する多くのK8sソースを作成することになり、それぞれ細かいYAMLマニフェストファイルを書く必要があります。そんな中、KubernetesのパッケージマネージャーとしてのHelmはユーザーがK8sの設定を再利用可能にするための方法としてメジャーなものとなっています。

初心者のためのHelm

HelmとはKubernetesに最適なアプリケーション・パッケージマネージャーでHelm Chartを使ってアプリケーションの構造を記述することを可能にします。Helmコマンドライン・インターフェイスを介してデプロイをロールバックしたり、アプリケーションの状態を監視したり、各デプロイの履歴をトレースしたりすることができます。Helmはサーバーサイドのアプリケーションを定義、保存、管理する方法を大きく変えます。2019年4月、CNCFはインキュベーション扱いであったHelmを完全なプロジェクトに変更しましたが、これはHelmが今後さらに多くのリソースへのアクセスを受け付けることを意味します。

Helmは主に次の機能を含みます。

  • Helm Chartとしてパッケージ化された人気のあるK8sソフトウェアを検索して使用する
  • K8sアプリケーションをHelm Chartとして共有する
  • K8sアプリケーションの再利用可能なビルドを作成する
  • Kubernetesマニフェストファイルを管理する
  • Helmパッケージのリリースを管理する

なぜHelm Chartなのか?

Helmの設定ファイルはChart(チャート)と呼ばれ、Kubernetesのマニフェストファイルにレンダリングされるメタデータとテンプレートを含む複数のYAMLファイルで構成されています。Chartの基本的なディレクトリ構造は以下の通りです。

package-name/
  charts/
  templates/
  Chart.yaml
  LICENSE
  README.md
  requirements.yaml
  values.yaml

 

helmコマンドを使うと、ローカルディレクトリや上記ディレクトリ構造の `.tar.gz` パッケージからChartをインストールすることができます。これらのパッケージ化されたChartはChartリポジトリから自動的にダウンロード、インストールすることも可能です。

Helmのセントラル・リポジトリとしてのChartCenter

JFrogは最近、開発者コミュニティ向けに公開されたHelm Chartの無料のセントラル・リポジトリとしてChartCenterを立ち上げました。ChartCenterではリッチなUIを使って何千ものKubernetes対応アプリケーションの中から必要なものを検索することができます。1つのセントラル・リポジトリからすべてのアプリケーションを見つけ、起動することができるのです。一見、他のHelmリポジトリが提供する検索サービスと似ていますが、Chartがキャッシュされていることと変更不可であることが特徴です。

保存されたHelm Chartはいずれも堅牢なメタデータとともに管理されます。メタデータがあることで、優れた意思決定をするための重要な情報が分かるようになります。

Helmチャンピオンになる

Helmを使ってKubernetesアプリケーションのデプロイを成功させる方法を学ぶ場合、すでにある多くのリソースを活用できます。多くは初心者がHelmとその仕組みを理解することを目的としたチュートリアルです。

ここでは基本的なものから高度なものまで、Helmの概念や実践的な内容を知るのに役立つお気に入りのビデオチュートリアルをいくつかご紹介します。動画は英語ですが参考にしてみてください。

1. What is Helm? (Helmとは何か)

IBM CloudのDavid Okun氏によるHelmの入門ビデオチュートリアルです。ここではKubernetesでアプリケーションやサービスを素早く定義、管理し、簡単にデプロイするためにHelmを使用する典型的なシナリオを説明しています。

 

2. An Introduction to Helm (Helm入門)

CNCF (Cloud Native Computing Foundation)によるビデオで、Helmの基本とChartの構成について説明しています。また、Helm Chartの共有や使用方法についても触れています。

 

3. What is Helm in Kubernetes? (KubernetesのHelmとは何か)

Techworld作のこのビデオはHelmの基本、テンプレートエンジン、そして欠点までも網羅して説明しています。ビデオの説明欄にあるタイムスタンプから、チュートリアルの必要な箇所を簡単に見つけることができます。

 

 4. Helm and Kubernetes Introduction (HelmとKubernetes入門)

Matthew Palmer氏はNode.js、Ruby、PHPの開発者にHelmとKubernetesを紹介しています。このビデオでは、HelmのChartやリリースの概要を説明するとともに、Helmのアーキテクチャを掘り下げています。また、よくあるNode.jsとMongoDBのWebアプリケーションをHelm Chartに変換するコードサンプルもあります。

 

5. Helm Chart Creation (Helm Chartの作成)

BitnamiもまたYoutubeでHelm Chartのチュートリアルを公開しています。これはHelmの初心者向けで、Helm Chartの作成方法、サンプルアプリケーションのデプロイ、依存関係の追加、パッケージ化、共有の仕方などを教えてくれています。

6. Helm Chart Patterns (Helm Chartのベストプラクティス)

CNCFによるビデオです。Helm Chartの詳細なパターンや公開されているHelm ChartリポジトリのChartをレビューし、メンテナンスのためのベストプラクティスを説明しています。

 

7. Building Helm Charts from the Ground Up (Helm Chartを一から構築する)

このビデオチュートリアルはCNCFによるもので、Helm Chartを構築する際に重要なKubernetesの概念をより詳しく説明しています。Helm Chart作成のための包括的なガイドです。

 

8. Helm Security – A Look Below Deck (Helmのセキュリティ – デッキの下に目を向ける)

Matt Farina氏はHelmのセキュリティの基本を説明し、Kubernetesアプリケーションを安全に保つためにコミュニティが協力して多くのプロセスを構築・改善している様子を紹介しています。

 

9. Helm 3 Deep Dive (Helm 3を深く掘り下げる)

このビデオはCNCF(Cloud Native Computing Foundation)主導で作成されたものです。Microsoft AzureのTaylor Thomas氏とIBMのMartin Hickey氏がHelm v3で起こる変更点について語り、新機能とそれをサポートするアーキテクチャについて話しています。CLIライブラリへの変更からChartの追加、新しいクライアント・セキュリティモデルまで、幅広いトピックをカバーしています。

 

10. Delve into Helm: Advanced DevOps (Helmを掘り下げる。アドバンスドDevOps)

このハイレベルなHelmチュートリアルではHelmを深く掘り下げ、さまざまな環境でのライフサイクル管理とKubernetesネイティブアプリケーションの継続的なデリバリーに焦点を当てています。プラグインやアドオンを使ってHelmの機能を拡張する方法を紹介しています。

 

次のステップ

Helmを使い始めて必要なHelm Chartを見つけるためにChartCenterにアクセスします。そして、250以上のChartのリストから選んでインストールします。数多くあるChartCenter上のリソースにアクセスすると、各Chartの依存関係、ライセンス、アプリケーションのバージョン、APIバージョンなどを含むアプリケーションに関する付加情報を得ることができます。また、セキュリティタブで確認できる無料の脆弱性スキャンでは、各Chartで見つかったセキュリティの問題に関するベーシックな情報が表示されます。

Helmの達人になって、早速今日からChartCenterを試してみてください!

Become a Helm Pro and give ChartCenter a spin today!