Ubuntu 26.04 から Kubernetes を操作する場合、kubectl だけでなく helm を使う場面が多くなります。Helm は、複数の Kubernetes manifest を Chart としてまとめ、values で環境差分を与えながら release として配備するための CLI です。
この記事では、Ubuntu 26.04 に Helm CLI を導入し、version、repository、Chart、release、values、helm-diff plugin、kubeconfig との関係を整理します。Helm そのものを Kubernetes と混同せず、Kubernetes アプリケーション配備の道具として位置づけます。
Helm は Kubernetes アプリケーション配備の道具である
Helm は Kubernetes クラスタを作る道具ではありません。Kubernetes クラスタがあり、kubeconfig で接続できる状態を前提に、その上へアプリケーションやコンポーネントを配備するための道具です。
| 領域 | 役割 |
|---|---|
| kubectl | Kubernetes API を直接操作する基本 CLI |
| Helm | Chart と values を使って Kubernetes リソース群を release として管理する |
| Terraform | クラウドや基盤リソース、場合によっては Kubernetes resource も宣言的に管理する |
| Ansible | OS やサーバー内部の設定、CLI 導入、ファイル配置などを管理する |
| kubeconfig | Helm がどの Kubernetes cluster / context へ接続するかを決める |
CPU architecture を確認する
Helm の公式 archive は OS と CPU architecture ごとに分かれています。Ubuntu 26.04 を x86_64 で動かしているのか、arm64 / aarch64 で動かしているのかを確認します。
uname -m
dpkg --print-architecturex86_64 / amd64 なら linux-amd64、aarch64 / arm64 なら linux-arm64 を使います。
Helm を /usr/local/bin に導入する
ここでは Helm 3.19.0 の公式 archive を取得し、checksum を確認してから /usr/local/bin/helm に配置します。パッケージ管理に任せる方法もありますが、特定バージョンを固定したい場合は公式 archive の配置が分かりやすいです。
helm_version=3.19.0
helm_arch=linux-arm64
cd /tmp
curl -fsSLO "https://get.helm.sh/helm-v${helm_version}-${helm_arch}.tar.gz"
curl -fsSLO "https://get.helm.sh/helm-v${helm_version}-${helm_arch}.tar.gz.sha256sum"
sha256sum -c "helm-v${helm_version}-${helm_arch}.tar.gz.sha256sum"
tar xf "helm-v${helm_version}-${helm_arch}.tar.gz"
sudo install -o root -g root -m 0755 "${helm_arch}/helm" /usr/local/bin/helmhelm_arch は環境に合わせます。x86_64 / amd64 環境なら linux-amd64、arm64 / aarch64 環境なら linux-arm64 です。
インストール結果を確認する
導入後は、Helm のバージョンと実行パスを確認します。複数の Helm が入っていると PATH の順序で別 binary を実行することがあります。
helm version --short
which helmbash completion を有効化する
管理端末として使う場合、補完が効くと chart 名、release 名、subcommand の確認が楽になります。全ユーザー共通にするなら /etc/profile.d に配置します。
sudo tee /etc/profile.d/u70-helm.sh >/dev/null <<'EOF'
if [ -x "/usr/local/bin/helm" ]; then
source <("/usr/local/bin/helm" completion bash)
fi
EOF
. /etc/profile.d/u70-helm.shkubeconfig と context を確認する
Helm は Kubernetes API に接続して release を管理します。そのため、Helm の前に kubeconfig と current context が正しいことを確認します。ここを確認しないまま helm install すると、意図しない cluster や namespace に配備する危険があります。
kubectl config current-context
kubectl config get-contexts
kubectl get namespacerepository と Chart を確認する
Helm では、Chart repository を追加し、Chart を検索し、values を指定して release として配備します。最初は install ではなく search と template / dry-run で内容を確認する方が安全です。
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm search repo bitnami/nginx
helm show values bitnami/nginx | sed -n '1,80p' | 用語 | 意味 |
|---|---|
| Chart | Kubernetes manifest のテンプレートと metadata をまとめたもの |
| Repository | Chart を配布する場所 |
| Release | Chart を cluster に配備した単位 |
| Values | Chart の変数。環境差分や設定値を渡す |
| Namespace | 配備先の Kubernetes namespace |
dry-run で差分を確認する
Helm は便利ですが、実際には複数の Kubernetes resource をまとめて作成・変更します。いきなり apply するのではなく、--dry-run や helm template で生成される manifest を確認します。
helm template example-nginx bitnami/nginx --namespace example
helm install example-nginx bitnami/nginx --namespace example --create-namespace --dry-run実際に配備する前に、どの Service、Deployment、ConfigMap、Secret が作られるのかを確認する習慣を付けると、運用時の見通しが良くなります。
helm-diff plugin を入れる
既存 release を更新する場合、何が変わるのかを事前に確認できることが重要です。helm-diff plugin を使うと、upgrade 前に差分を確認できます。
mkdir -p ~/.cache/helm/tmp
TMPDIR=~/.cache/helm/tmp helm plugin install https://github.com/databus23/helm-diff
helm plugin listplugin が壊れている場合は、plugin directory は存在するのに binary がない状態になることがあります。その場合は該当 plugin を削除して入れ直します。
rm -rf ~/.local/share/helm/plugins/helm-diff
TMPDIR=~/.cache/helm/tmp helm plugin install https://github.com/databus23/helm-diffHelm と Terraform / Ansible の責務分離
Helm は Kubernetes 上のアプリケーション配備に向いています。一方で、クラスタ外の基盤リソース、OS 設定、CLI の導入まで Helm で扱おうとすると責務が崩れます。
| 対象 | 主に使う道具 |
|---|---|
| Helm CLI の導入 | Ansible や手順化された OS 管理 |
| Kubernetes cluster の作成 | kubeadm、クラウドサービス、Terraform など構成次第 |
| Kubernetes アプリケーション配備 | Helm、kubectl、GitOps ツール |
| クラウド LB、DNS、IAM | Terraform などの IaC ツール |
| OS パッケージ、証明書、systemd | Ansible |
運用上の注意点
| 項目 | 注意点 |
|---|---|
| context | 作業前に kubeconfig の current context を確認する |
| namespace | release をどの namespace に置くか明示する |
| values | 環境差分を values file として管理する |
| diff | upgrade 前に差分を確認する |
| rollback | release history と rollback 方針を確認する |
| Secret | values に機密情報を平文で置かない |
まとめ
Ubuntu 26.04 に Helm を導入すると、Kubernetes 上のアプリケーションやコンポーネントを Chart と release の単位で管理できます。ただし、Helm は Kubernetes クラスタそのものを作る道具ではなく、kubeconfig で接続できる cluster を前提に動く CLI です。
Helm を使う場合は、version、architecture、kubeconfig、repository、values、namespace、diff を確認し、Terraform や Ansible と役割を分けることが重要です。特に本番環境では、helm install や helm upgrade の前に、生成される manifest と差分を確認する流れを作るべきです。
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。



