0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes と Helm の基本概念をまとめて理解する

Last updated at Posted at 2025-11-19

はじめに

Kubernetesはコンテナオーケストレーションの標準的な仕組みであり、その構成要素やデプロイ方法を理解することはアプリケーション運用において非常に重要です。
その Kubernetes 上で効率的にアプリケーションを管理するためのツールが Helm です。

この記事では次の内容を整理します。

  • Kubernetes の基本構造
  • Helm の役割
  • Helm の「Chart」と「Release」の意味
  • Kubernetes と Helm の関係性

1. Kubernetesとは何か

Kubernetes は、コンテナ化されたアプリケーションを
デプロイ、スケール、管理、自己修復 するための仕組みです。

クラスタは次の2つの役割のノードで構成されています。

● Control Plane

クラスタ全体を管理する部分で、次のようなコンポーネントが含まれます。

  • kube-apiserver:すべての操作の入口
  • etcd:クラスタの状態を保存するキーバリューストア
  • kube-scheduler:Pod の配置先を決定
  • kube-controller-manager:リソースの状態維持

● Worker Node

アプリケーション(Pod)が動作するノードで、以下のコンポーネントがあります。

  • kubelet:ノード上の Pod を管理
  • kube-proxy:ネットワークルーティング
  • コンテナランタイム:Docker や containerd など

これらが組み合わさることで、ユーザーは宣言的に「どのように動作してほしいか」を YAML で定義し、クラスタがその状態を維持してくれます。

2. Helm とは何か

Helm は Kubernetes 用の パッケージマネージャ です。
Linux における aptyum のような役割を持ちます。

Kubernetes は Deployment、Service、Ingress、ConfigMap など多数の YAML ファイルでアプリを構成します。
これらをまとめて扱い、テンプレート化し、環境ごとに柔軟に管理できるようにする仕組みが Helm です。

3. Chart(チャート)とは

Helm Chart は Kubernetes アプリケーションをデプロイするためのテンプレート集 です。

Chart には以下が含まれます。

  • templates/:YAML テンプレート
  • values.yaml:テンプレートに注入する基本設定
  • Chart.yaml:Chart のメタ情報

Chart は「設計図」に近い存在で、これ自体はクラスタにリソースを作りません。

4. Release(リリース)とは何か

Helm でもっとも誤解しやすい概念が「リリース」です。

● Release = Chart + Values がクラスタ上に展開された “実体”

Helm は以下のようにアプリをインストールします。

helm install my-app bitnami/wordpress
  • bitnami/wordpress → Chart(テンプレート・設計図)
  • my-app → Release 名(クラスタ上の実際のアプリ)

Release は次のようなリソース群として Kubernetes に作成されます。

  • Deployment
  • Service
  • Secret
  • ConfigMap
  • Ingress
  • PersistentVolumeClaim など

つまり Chart はレシピ、Release は出来上がった料理 というイメージに近いです。

5. Release のライフサイクル

Helm は Release を「バージョン履歴付き」で管理します。

helm upgrade my-app .
helm rollback my-app 1
  • upgrade:リソースの更新
  • rollback:任意のバージョンへ巻き戻し
  • uninstall:削除

YAML の更新とデプロイが一元管理でき、変更履歴まで追えるのが Helm の大きな利点です。

6. Kubernetes と Helm の関係

役割 Kubernetes Helm
アプリの構成方法 YAML を直接適用 テンプレートから YAML を生成して適用
管理単位 Deployment / Service / Pod など個別 Release としてまとめて扱う
初期デプロイ kubectl apply helm install
更新 YAML を更新 → apply helm upgrade
差分表示 kubectl diff(環境依存) helm diff(プラグイン)
ロールバック 基本は手動 コマンド1つで簡単

Helm は Kubernetes の外側でテンプレート管理をするツール であり、
Kubernetes の仕組みを拡張するわけではありません。

クラスタ内部に Helm の仕組みが常駐するわけではなく、
Release 情報はクラスタ内部の Secret と Helm クライアント側が保持します。

まとめ

  • Kubernetes はコンテナアプリケーションを宣言的に管理するための仕組み
  • Helm は Kubernetes 用のパッケージマネージャ
  • Chart は Kubernetes リソース群のテンプレート
  • Release は「Chart + Values がデプロイされた実体」
  • Helm を使うことでバージョン管理、ロールバック、環境差分管理が簡単になる

Kubernetes の YAML が複雑になるほど、Helm の恩恵は大きくなります。
Release の概念さえつかんでしまえば、Helm は非常に扱いやすいツールです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?