Ubuntu 26.04 から Calico を利用している Kubernetes cluster を確認する場合、kubectl だけで足りる場面もありますが、Calico 固有のリソースや状態を確認したい時には calicoctl があると便利です。
この記事では、Ubuntu 26.04 に calicoctl を導入し、client version、CPU architecture、kubeconfig、基本的な確認コマンドを整理します。Calico CNI を設計・構築する記事ではなく、Calico を確認する管理 CLI を整える記事です。
calicoctl は Calico の状態確認と操作に使う CLI
calicoctl は Calico の NetworkPolicy、IPPool、BGP 設定、node 状態などを確認・操作するための CLI です。Kubernetes の基本的なリソース確認は kubectl で行い、Calico 固有の対象を見る時に calicoctl を使う、と分けると理解しやすくなります。
| CLI | 主な役割 |
|---|---|
| kubectl | Kubernetes API を直接操作し、Pod、Service、Node、ConfigMap などを見る |
| helm | Chart と values を使って Kubernetes アプリケーションを配備する |
| calicoctl | Calico 固有のリソース、IPPool、BGP、NetworkPolicy などを確認・操作する |
| terraform | 基盤リソースや外部リソースを宣言的に管理する |
| ansible | OS 側の設定や CLI 導入などを管理する |
CPU architecture を確認する
calicoctl の release binary は CPU architecture ごとに分かれています。Ubuntu 26.04 が x86_64 なのか arm64 / aarch64 なのかを先に確認します。
uname -m
dpkg --print-architecturex86_64 / amd64 なら amd64、aarch64 / arm64 なら arm64 の binary を使います。
calicoctl を /usr/local/bin に導入する
ここでは Project Calico の GitHub release から calicoctl-linux-arm64 または calicoctl-linux-amd64 を取得し、/usr/local/bin/calicoctl として配置します。
calico_version=3.30.3
calico_arch=arm64
sudo curl -fsSL -o /usr/local/bin/calicoctl "https://github.com/projectcalico/calico/releases/download/v${calico_version}/calicoctl-linux-${calico_arch}"
sudo chown root:root /usr/local/bin/calicoctl
sudo chmod 0755 /usr/local/bin/calicoctlcalico_arch は実行環境に合わせます。x86_64 / amd64 なら amd64、arm64 / aarch64 なら arm64 です。
client version を確認する
導入後は、期待した version の calicoctl が実行されているかを確認します。複数の binary が PATH 上にあると別のものを実行してしまうことがあります。
calicoctl version --client
which calicoctlkubeconfig と datastore の前提を確認する
calicoctl は Calico の datastore に接続して情報を取得します。Kubernetes datastore を使う構成では、kubeconfig と current context が重要です。意図しない cluster に向けて操作しないように、先に context を確認します。
kubectl config current-context
kubectl config get-contexts
kubectl get nodes環境によっては DATASTORE_TYPE=kubernetes や KUBECONFIG を明示する方が分かりやすいです。管理端末上で複数 cluster を扱う場合は、操作前に必ず context を確認します。
export DATASTORE_TYPE=kubernetes
export KUBECONFIG=$HOME/.kube/config
calicoctl get nodesCalico の状態を確認する
まずは読み取り系のコマンドで、Calico が見えているかを確認します。最初から変更系のコマンドを実行せず、node、IPPool、policy などを確認するところから始めます。
calicoctl get nodes
calicoctl get ippools
calicoctl get networkpolicies --all-namespaces
calicoctl get globalnetworkpoliciesコマンドが失敗する場合は、Calico 側の問題とは限りません。kubeconfig、権限、context、Calico の datastore、cluster 側の API 到達性を切り分けます。
kubectl で見えるものと calicoctl で見るものを分ける
Calico を使っていても、すべてを calicoctl で見る必要はありません。Kubernetes resource として管理されているものは kubectl で確認し、Calico 固有の表現や状態を見る時に calicoctl を使うのが自然です。
| 確認したいもの | 主に使う CLI |
|---|---|
| Pod、Node、Service、Endpoint | kubectl |
| Kubernetes NetworkPolicy | kubectl / calicoctl |
| Calico IPPool | calicoctl |
| Calico BGP 関連 | calicoctl |
| CNI Pod の状態 | kubectl |
| Calico 固有 policy | calicoctl |
運用上の注意点
| 項目 | 注意点 |
|---|---|
| context | 操作前に kubeconfig の current context を確認する |
| 権限 | Calico resource を読める Kubernetes 権限が必要になる |
| version | cluster 側の Calico version と大きくずれないようにする |
| 変更操作 | 読み取り確認と変更操作を分け、誤操作を避ける |
| CNI 設計 | calicoctl 導入と Calico CNI 設計を混同しない |
まとめ
Ubuntu 26.04 に calicoctl を導入すると、Calico 固有の node、IPPool、policy、BGP 関連の状態を確認しやすくなります。ただし、これは Calico CNI を構築する手順ではなく、Calico を確認・操作するための管理 CLI を用意する作業です。
kubectl、helm、calicoctl はそれぞれ役割が違います。Kubernetes の基本操作は kubectl、アプリケーション配備は helm、Calico 固有の確認は calicoctl と分けておくと、管理端末の役割が分かりやすくなります。
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。



