手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Kubernetes 管理ツールのインストール – kubectl / Helm / calicoctl を整理する

Ubuntu 22.04 で Kubernetes クラスターを管理するためのツールをインストールします。ここで扱うのは、クラスターを構築するためのノード設定ではなく、構築後にクラスターを操作・確認するための管理ツールです。

主に kubectlHelm、必要に応じて calicoctl を整理します。管理端末やコントロールプレーン上で使うことが多いですが、どのホストに入れるかは運用方針に合わせて決めます。

管理ツールの位置づけ

  • kubectl は Kubernetes API を操作する基本ツール
  • Helm は Kubernetes アプリケーションをチャートとして管理するツール
  • calicoctl は Calico を直接確認・管理するための補助ツール
  • ワーカーノードに必ず入れるものではなく、管理操作を行う端末に入れる
  • クラスター操作には kubeconfig と権限設計が必要になる

kubectl をインストールする

kubeadm と同じ Kubernetes リポジトリを使っている場合、kubectl は APT で導入できます。

sudo apt update
sudo apt install -y kubectl
sudo apt-mark hold kubectl
kubectl version --client

クラスターへ接続するには、管理対象クラスターの kubeconfig を配置します。コントロールプレーン上で作業する場合は、次のように admin.conf をユーザーの kubeconfig として配置することがあります。

mkdir -p ~/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/config
sudo chown "$(id -u):$(id -g)" ~/.kube/config
kubectl get nodes

管理端末から接続する場合は、kubeconfig を安全に配布し、対象クラスターと権限を明確に分けます。

kubectl の補完を設定する

頻繁に操作する端末では、シェル補完を有効化しておくと便利です。

sudo apt install -y bash-completion
echo 'source <(kubectl completion bash)' >> ~/.bashrc
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -o default -F __start_kubectl k' >> ~/.bashrc

反映するには、シェルを開き直すか source ~/.bashrc を実行します。

Helm をインストールする

Helm は Kubernetes 上のアプリケーションをチャートとして管理するためのツールです。公式スクリプトを使う方法もありますが、ここでは APT リポジトリを追加して導入します。

sudo apt install -y apt-transport-https ca-certificates curl gpg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | sudo gpg --dearmor -o /etc/apt/keyrings/helm.gpg
echo 'deb [signed-by=/etc/apt/keyrings/helm.gpg] https://packages.buildkite.com/helm-linux/helm-debian/any/ any main' | sudo tee /etc/apt/sources.list.d/helm.list >/dev/null
sudo apt update
sudo apt install -y helm
helm version

Helm は便利ですが、クラスターへ何を投入したかが分かりにくくなることもあります。運用では、チャートの値ファイルをリポジトリで管理し、手元の一回限りの変更にしない方が安全です。

Helm の補完を設定する

echo 'source <(helm completion bash)' >> ~/.bashrc

kubectl と同じく、シェルを開き直すか source ~/.bashrc で反映します。

calicoctl を使う場合

CNI に Calico を使っている場合、calicoctl があると Calico 側のリソース確認に使えます。ただし、すべての環境で必須ではありません。

curl -L https://github.com/projectcalico/calico/releases/latest/download/calicoctl-linux-amd64 -o calicoctl
chmod +x calicoctl
sudo install -m 0755 calicoctl /usr/local/bin/calicoctl
calicoctl version

アーキテクチャが arm64 の場合は、対応するバイナリを選びます。Calico のバージョンや導入方式によって確認方法が変わるため、実際のクラスターに合わせて使います。

確認すること

kubectl get nodes
kubectl get pods -A
helm version
helm list -A

kubectl でノードと Pod が見えること、Helm のクライアントが動くことを確認します。Helm のリリース一覧は、まだ Helm で何も導入していなければ空でも問題ありません。

まとめ

Kubernetes の管理ツールは、クラスターを構築するノード設定とは役割が違います。kubectl は API 操作、Helm はアプリケーション管理、calicoctl は Calico の補助確認に使います。

管理ツールを入れるホスト、kubeconfig の配置、権限の範囲を決めておくと、後からクラスターを増やしたときにも混乱しにくくなります。Kubernetes では、ツールのインストールよりも、どの権限でどのクラスターを操作しているかを明確にすることが重要です。

参考
書籍
参考書籍

Kubernetes完全ガイド 第2版

Kubernetes の仕組み、リソース、ネットワーク、運用観点を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

関連記事

Ubuntu 22.04 Kubernetes 管理ツールのインストール – kubectl / Helm / calicoctl を整理する

コメントを残す

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

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

トップへ戻る