Cilium / Docker

これまでCiliumをあつかうためには、Kubernetesの環境を整えてきましたが、下記にDockerだけで動作させている例を見つけたため、試してみました。
まずここでは環境の疎通確認を目的とします。(Policy適用は次の機会に)

https://qiita.com/ydclab_P002/items/0227a029d0bb236a126f

構成

しかし下記エラーが数分後現れます。Operatorが起動がすぐに停止していることが原因のようです。
“KVStore: Failure Err: quorum check failed”
https://github.com/cilium/cilium/issues/12904
https://blog.azyobuzi.net/2020/09/14/01-cilium/

ダウングレードしたり、チェックを無効にしようとしたり、Operatorを再起動したりしましたが、結局最新バージョンを使用することで、解決できました。

環境

$ docker –version
Docker version 23.0.1, build a5ee5b1

(Linuxは環境の都合でUbuntu 22.04, 20.04を使用)

docker-compose.yml (node1)

docker-compose.yml (node2)

起動(node1,node2)

export NODE1_ADDR=192.168.1.172
export NODE2_ADDR=192.168.1.248
docker compose up

状態確認(node1,node2)

docker exec -it cilium cilium version
docker exec -it cilium cilium status

ネットワーク生成(node1,node2)

docker network create –driver cilium –ipam-driver cilium cilium-net

サンプルapp1起動(node1)

docker run -it –rm –name app1 -l name=app1 –net cilium-net alpine/curl sh
docker exec -it cilium cilium endpoint list

サンプルapp2起動(node2)

docker run -it –rm –name app2 -l name=app2 –net cilium-net busybox sh
docker exec -it cilium cilium endpoint list

実行画面

・起動後数分後

・サンプルapp1起動(node1)

・サンプルapp2起動(node2)

・ノードの確認

・疏通確認

・プロセス確認

dockerだけという手軽さがとても気に入りました。(マルチノードの構成がシンプル)
これをベースにいろいろ試したいと思います。

参考

Cilium & Grafana / Kubernetes IN Docker