Kubernetes & Docker 的預設網段筆記

此篇記錄 Kubernetes ( use Weave-cni ) 的預設網段以及 Docker 預設網段,並且說明如何進行網段調整。

全預設網段

Docker (custom bridge) 為使用 ‘docker create network’ 命令後產生的新的 docker 內部網路。

由於預設網路 (default bridge) 中的 docker container 無法使用網路別名進行溝通,必須自行建立一個自訂網路來使用網路別名。

依照 Docker 產生新網路的邏輯,在預設不特別給定 subnet 的情況下,會在第二碼逐步遞增;未測試預設使用的網段最大值,正常來說也不大需要開到這麼多網段。

Used ForSubnetGenMaskStartEnd
Kubernetes (Weave-cni)10.32.0.0/12255.240.0.010.32.0.110.47.255.254
Docker (default bridge)172.17.0.0/16255.255.0.0172.17.0.1172.17.255.254
Docker (custom bridge1)172.18.0.0/16255.255.0.0172.18.0.1172.18.255.254
Docker (custom bridge2)172.19.0.0/16255.255.0.0172.18.0.1172.18.255.254

Weave.net cni 預設網段調整方式

安裝 Weave.net cni 時設定

安裝語法如下

1
2
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC_RANGE=172.30.0.0/16"
kubectl delete -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC_RANGE=172.30.0.0/16"

Docker 預設網段調整方式

使用 vi 編輯 /etc/docker/daemon.json

1
2
3
4
5
6
{
  "default-address-pools": [
    {"base":"10.48.0.0/14","size":16}
  ],
  "bip": "10.48.0.1/16"
}

base = 可使用網段範圍 size = 每一個 bridge 網段大小

Used ForSubnetGenMaskStartEnd
Docker (default bridge)10.48.0.0/16255.240.0.010.48.0.110.48.255.254
Docker (custom bridge)10.49.0.0/16255.255.0.010.49.0.110.49.255.254
Docker (custom bridge)10.50.0.0/16255.255.0.010.50.0.110.50.255.254
Docker (custom bridge)10.51.0.0/16255.255.0.010.51.0.110.51.255.254
Used ForSubnetGenMaskStartEnd
Docker (default bridge)10.48.0.0/16255.255.0.010.48.0.110.48.255.254
Docker (custom bridge)10.49.0.0/16255.255.0.010.49.0.110.49.255.254
Used ForSubnetGenMaskStartEnd
Kubernetes (Weave-cni)10.32.0.0/12255.240.0.010.32.0.110.47.255.254
Docker (default bridge)10.48.0.0/16255.255.0.010.48.0.110.48.255.254
Docker (custom bridge)10.49.0.0/16255.255.0.010.49.0.110.49.255.254

Reference