### DC/OSのネットワークを ### Calicoでどうにかできるかできないか <br> Junichi Yoshise @jyoshise ---- ### そろそろ髪を切りたいので ### だれかきっかけをください ---- ### (失恋とかそういうやつ) ---- ### コンテナのネットワーク ### なにかとやっかいですよね ---- ### Mesosで使える<br>Container Runtime 2種類 - Docker Containerizer - Mesos Containerizer <br> (Universal Container Runtime) ---- ### てことはContainer Networkも2種類 ---- - CNM (Container Network Model) - Dockerが使ってるやつ - コンテナが外と通信するためにNAT(NAPT)が必須 ![](https://i.imgur.com/uxjIZEu.jpg) ---- - CNI (Container Network Interface) - Mesos Containerizerはこっち - ちなみにKubernetesもこっち - オーバーレイ前提(L2フレームをカプセル化) - オーバーレイ実装の決定打がない感じ(DC/OSはNavster) ---- ## Calico 1. 更紗(さらさ) 《平織りのいろいろな模様を捺染(なつせん)した綿布》. 2. 三毛猫 ---- ![](https://i.imgur.com/7s7c8TG.png) ---- - Calico - オーバーレイしない - BGPをつかった単純なL3ネットワーク ---- 要するにこれが ![](https://i.imgur.com/YGjB5Rj.jpg) ---- こうなる ![](https://i.imgur.com/AoMzoHR.jpg) ---- - 単純なのでスケーラブル - L3なのでポリシーベースで通信制御できる ---- #### やってみた http://docs.projectcalico.org/v2.3/getting-started/mesos/ ![](https://i.imgur.com/1GSvTEl.png) ---- セットアップ - Mesosクラスタ準備 - 全ノードにetcdを入れてクラスタ化 - etcdをDockerのCluster Storeにする - Docker Containerizerを有効化 - CNI Isolatorを有効化 - Calicoインストール - `calicoctl`(バイナリ)を配置 - `calico/node`(Dockerイメージ)を起動 - Calico CNI pluginをインストール ---- DC/OSだとさらに簡単 ![](https://i.imgur.com/uwgXJA8.png) ---- ## Demo ---- と思ったけどあまりに地味なのでやめときます ---- 普通に動きます ---- ネットワーク作るときはこんな感じ <br> Docker Containerizer: ``` docker network create --driver=calico\ --ipam-driver=calico-ipam my-calico-net ``` ---- ネットワーク作るときはこんな感じ <br> Mesos Containerizer: ``` cat <<EOF > $NETWORK_CNI_CONFIG_DIR/calico-net-1.conf { "name": "calico-net-1", "type": "calico", "ipam": { "type": "calico-ipam" }, "etcd_endpoints": "http://<etcd-ip:port>:2379" } EOF ``` ---- 触ってみて よさげなところ - 使う分には単純なL3ネットワークなのであんま難しいこと考えなくていい - パフォーマンスはよくわからないけどオーバーヘッドはそんななさそう ---- 微妙なところ - etcdか。。。 ---- 結論 ---- WE ARE HIRING
{"metaMigratedAt":"2023-06-14T13:59:59.546Z","metaMigratedFrom":"YAML","title":"DC/OSのネットワークをCalicoでどうにかできるかできないか","breaks":true,"contributors":"[]"}
    2202 views