Helm は Kubernetes アプリケーションを Chart と release で管理するための CLI です。Ubuntu 26.04 サーバーに入れる場合は、kubectl や kubeconfig と同じく、実行するバージョンと plugin を明確にしておくと運用差分を追いやすくなります。
この記事では、Helm を get.helm.sh から固定バージョンで取得し、checksum を確認して /usr/local/bin/helm に配置し、bash completion と helm-diff plugin まで確認する基本構成をまとめます。
- Helm を固定バージョンで導入する考え方
linux-amd64/linux-arm64の対応- archive と checksum の取得
/usr/local/bin/helmへの配置- bash completion と
helm-diffplugin
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| Helm version | 3.21.2 |
| 取得元 | https://get.helm.sh |
| 作業ディレクトリ | /usr/local/src |
| 実行ファイル | /usr/local/bin/helm |
| profile | /etc/profile.d/u70-helm.sh |
Helm を固定バージョンで導入する理由
Helm は Chart の render、template 関数、plugin、Kubernetes API との組み合わせで使います。CLI の version が変わると、同じ values でも確認すべき差分が増えることがあります。
サーバー管理用の実行環境では、Helm 本体の version、plugin、kubeconfig の参照先を分けて管理すると、どこで挙動が変わったのかを追いやすくなります。
- Helm CLI の version を明示する
- Chart version と App version を分けて見る
- values と release の変更履歴を残す
- plugin は導入状態を確認できるようにする
CPU アーキテクチャを確認する
Helm の配布ファイル名では、x86_64 は linux-amd64、aarch64 は linux-arm64 として扱います。
uname -m
dpkg --print-architecture| Ubuntu 側の表示 | Helm 配布名 |
|---|---|
x86_64 | linux-amd64 |
amd64 | linux-amd64 |
aarch64 | linux-arm64 |
arm64 | linux-arm64 |
archive と checksum を取得する
ここでは Helm 3 系の 3.21.2 と linux-amd64 を例にします。checksum も取得し、アーカイブの検証に使える状態にしてから展開します。
helm_version="3.21.2"
helm_platform="linux-amd64"
work_dir="/usr/local/src"
archive="helm-v${helm_version}-${helm_platform}.tar.gz"
sudo install -d -o root -g root -m 0755 "$work_dir"
curl -fsSL -o "/tmp/${archive}.sha256sum" "https://get.helm.sh/${archive}.sha256sum"
curl -fsSL -o "/tmp/${archive}" "https://get.helm.sh/${archive}"
cd /tmp
sha256sum -c "${archive}.sha256sum"
sudo install -o root -g root -m 0644 "/tmp/${archive}" "$work_dir/${archive}"
sudo install -o root -g root -m 0644 "/tmp/${archive}.sha256sum" "$work_dir/${archive}.sha256sum"Helm binary を配置する
アーカイブを展開し、取り出した helm binary を /usr/local/bin/helm に配置します。
extract_dir="/usr/local/src/helm-v${helm_version}-${helm_platform}"
sudo rm -rf "$extract_dir"
sudo install -d -o root -g root -m 0755 "$extract_dir"
sudo tar -xzf "$work_dir/${archive}" -C "$extract_dir"
sudo install -o root -g root -m 0755 "$extract_dir/${helm_platform}/helm" /usr/local/bin/helm
command -v helmバージョンを確認する
導入後は helm version --short で、意図した version が使われていることを確認します。
helm version --short
helm envbash completion を設定する
管理用 shell で補完を使う場合は、profile に completion を読み込む設定を置きます。ファイルは root 管理で配置します。
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
sudo chmod 0644 /etc/profile.d/u70-helm.sh
sudo chown root:root /etc/profile.d/u70-helm.sh
source /etc/profile.d/u70-helm.shhelm-diff plugin を導入する
helm-diff は、upgrade 前に release と Chart の差分を確認するためによく使う plugin です。plugin はユーザーの home 配下に入るため、どの管理ユーザーで使うのかを明確にして導入します。
install -d -m 0755 "$HOME/.cache/helm/tmp"
TMPDIR="$HOME/.cache/helm/tmp" helm plugin install https://github.com/databus23/helm-diff
helm plugin listplugin ディレクトリは通常 $HOME/.local/share/helm/plugins/helm-diff です。binary が存在しない壊れた状態で残っている場合は、いったん plugin ディレクトリを消して入れ直します。
test -x "$HOME/.local/share/helm/plugins/helm-diff/bin/diff"
helm diff versionChart と release を確認する
Helm を入れただけでは Kubernetes へ何も配備されません。実際の運用では、Chart repository、Chart version、values、namespace、release 名を分けて確認します。
helm repo list
helm search repo
helm list -A
helm status RELEASE_NAME -n NAMESPACE更新前に diff を見る
既存 release を更新する前に、helm diff upgrade で変更される Kubernetes manifest を確認します。差分を見る習慣をつけると、values の小さな変更が Deployment、Service、Ingress などへどう反映されるか追いやすくなります。
helm diff upgrade RELEASE_NAME CHART_NAME -n NAMESPACE -f values.yaml
helm upgrade RELEASE_NAME CHART_NAME -n NAMESPACE -f values.yaml確認ポイント
/usr/local/bin/helmが root 所有で実行可能になっているhelm version --shortが意図した version を返すlinux-amd64/linux-arm64の対応を誤っていない/etc/profile.d/u70-helm.shで completion を読み込めるhelm plugin listでdiffが確認できる- release 更新前に
helm diff upgradeを確認している
まとめ
Ubuntu 26.04 で Helm を使う場合、Helm 本体、Chart、values、release、plugin を分けて管理することが大切です。CLI は /usr/local/bin/helm に固定バージョンで配置し、checksum と helm version --short で確認します。
また、Kubernetes アプリケーションの更新では、いきなり helm upgrade するのではなく、helm-diff で差分を確認してから適用する流れにしておくと、運用時の判断がしやすくなります。

