手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 calicoctl の基本設定 – Calico を確認する管理 CLI を配置する

関連する記事

calicoctl は、Calico のノード、IPPool、BGP 設定、ネットワークポリシーなどを確認するための管理 CLI です。Ubuntu 26.04 の管理端末に配置しておくと、Kubernetes クラスタ側の Calico 状態を CLI から追いやすくなります。

この記事では、Calico の release から固定した version の calicoctl binary を取得し、/usr/local/bin/calicoctl に配置して、Kubernetes datastore と kubeconfig を使って確認する基本をまとめます。

この記事で扱うこと
  • calicoctl を管理端末に入れる目的
  • amd64 / arm64 の binary 選択
  • /usr/local/bin/calicoctl への配置
  • calicoctl version --client による確認
  • Kubernetes datastore と kubeconfig の指定
対象 OSUbuntu 26.04 Server
取得元https://github.com/projectcalico/calico/releases/download
配置先/usr/local/bin/calicoctl
確認コマンドcalicoctl version --client
主な用途Calico node、IPPool、BGP、policy の確認
参考書籍
参考書籍
Kubernetes完全ガイド 第2版
Kubernetes の基本リソース、ネットワーク、運用確認を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

calicoctl の位置づけ

calicoctl は Kubernetes の汎用 CLI である kubectl の代わりではありません。Calico のリソースや状態を確認するための専用 CLI として扱います。

  • kubectl は Kubernetes API 全般を扱う
  • calicoctl は Calico の状態確認に使う
  • Calico の version と近い calicoctl を使う
  • kubeconfig の参照先を明示する

CPU アーキテクチャを確認する

Calico の配布 binary は calicoctl-linux-amd64calicoctl-linux-arm64 のような名前です。Ubuntu 側の CPU アーキテクチャと対応させて選びます。

uname -m
dpkg --print-architecture
Ubuntu 側の表示calicoctl 配布名
x86_64calicoctl-linux-amd64
amd64calicoctl-linux-amd64
aarch64calicoctl-linux-arm64
arm64calicoctl-linux-arm64

calicoctl を取得する

利用する Calico に合わせて calico_version を決めます。ここでは変数として置き、環境で採用している Calico version に合わせて指定します。

calico_version="3.32.1"
calico_arch="amd64"
binary="calicoctl-linux-${calico_arch}"
base_url="https://github.com/projectcalico/calico/releases/download"
curl -fsSL -o "/tmp/calicoctl" "${base_url}/v${calico_version}/${binary}"
chmod 0755 /tmp/calicoctl
/tmp/calicoctl version --client

/usr/local/bin に配置する

管理端末で使えるように、root 所有の実行ファイルとして /usr/local/bin/calicoctl に配置します。

sudo install -d -o root -g root -m 0755 /usr/local/bin
sudo install -o root -g root -m 0755 /tmp/calicoctl /usr/local/bin/calicoctl
command -v calicoctl
calicoctl version --client

kubeconfig を指定する

Kubernetes datastore の Calico を確認する場合は、DATASTORE_TYPE=kubernetes と kubeconfig の参照先を明示します。複数クラスタを扱う管理端末では、どの kubeconfig を見ているのかを必ず確認します。

export DATASTORE_TYPE=kubernetes
export KUBECONFIG="$HOME/.kube/config"
kubectl config current-context
calicoctl version

Calico の状態を確認する

まずは読み取り系のコマンドで、node、IPPool、BGP peer、policy を確認します。変更操作の前に、現在のクラスタ状態を把握することが大切です。

calicoctl get nodes
calicoctl get ippools -o wide
calicoctl get bgppeers -o wide
calicoctl get networkpolicies --all-namespaces

version mismatch に注意する

calicoctl とクラスタ側 Calico の version が離れている場合、操作に失敗したり、意図しない差分を見落としたりすることがあります。確認専用でも、Calico 本体の version に合わせた CLI を使う方が安全です。

calicoctl version
kubectl get pods -n calico-system
kubectl get pods -n kube-system | grep -i calico

--allow-version-mismatch は、version 差を理解した上で一時的に使うための選択肢です。通常運用の前提にするより、CLI version を合わせる方が安全です。

設定ファイルで指定する場合

毎回環境変数を指定したくない場合は、calicoctl 用の設定ファイルを使えます。管理端末で複数クラスタを扱う場合は、ファイル名や配置場所で対象を区別します。

sudo install -d -o root -g root -m 0755 /etc/calico
sudo tee /etc/calico/calicoctl.cfg >/dev/null <<'EOF'
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  datastoreType: kubernetes
  kubeconfig: /home/myadmin/.kube/config
EOF
sudo chmod 0644 /etc/calico/calicoctl.cfg
sudo chown root:root /etc/calico/calicoctl.cfg
calicoctl --config /etc/calico/calicoctl.cfg get nodes
calicoctl --config /etc/calico/calicoctl.cfg get ippools -o wide

確認ポイント

  • /usr/local/bin/calicoctl が root 所有で実行可能になっている
  • calicoctl version --client が意図した version を返す
  • amd64 / arm64 の binary 選択を誤っていない
  • DATASTORE_TYPE=kubernetesKUBECONFIG を明示している
  • 読み取り系コマンドで node、IPPool、BGP、policy を確認できる
  • Calico 本体と calicoctl の version 差を確認している

まとめ

Ubuntu 26.04 に calicoctl を配置すると、Calico の node、IPPool、BGP、network policy を管理端末から確認しやすくなります。

重要なのは、クラスタ側 Calico に合わせた version の calicoctl-linux-amd64 または calicoctl-linux-arm64 を選び、/usr/local/bin/calicoctl に固定して配置することです。実行時は kubeconfig と datastore type を明示し、対象クラスタを取り違えないように確認します。

関連する記事
Ubuntu 26.04 calicoctl の基本設定 – Calico を確認する管理 CLI を配置する

コメントを残す

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

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

トップへ戻る