手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Helm の基本設定 – Kubernetes アプリケーション配備 CLI を固定バージョンで管理する

関連する記事

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-diff plugin
対象 OSUbuntu 26.04 Server
Helm version3.21.2
取得元https://get.helm.sh
作業ディレクトリ/usr/local/src
実行ファイル/usr/local/bin/helm
profile/etc/profile.d/u70-helm.sh
参考書籍
参考書籍
Kubernetes完全ガイド 第2版
Kubernetes の基本リソース、運用、Helm を含むアプリケーション管理を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

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_64linux-amd64
amd64linux-amd64
aarch64linux-arm64
arm64linux-arm64

archive と checksum を取得する

ここでは Helm 3 系の 3.21.2linux-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 env

bash 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.sh

helm-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 list

plugin ディレクトリは通常 $HOME/.local/share/helm/plugins/helm-diff です。binary が存在しない壊れた状態で残っている場合は、いったん plugin ディレクトリを消して入れ直します。

test -x "$HOME/.local/share/helm/plugins/helm-diff/bin/diff"
helm diff version

Chart と 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 listdiff が確認できる
  • 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 で差分を確認してから適用する流れにしておくと、運用時の判断がしやすくなります。

関連する記事
Ubuntu 26.04 Helm の基本設定 – Kubernetes アプリケーション配備 CLI を固定バージョンで管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る