Я настраиваю кластер с нуля, используя «Изучите Kubernetes the Hard Way».Я заметил, что модули через узлы не могут общаться.На самом деле они тоже не могут подключиться к Интернету.
Похоже, что интерфейс cni0
, который является шлюзом по умолчанию, неправильно маршрутизирует пакеты.
Я не использую сетевых драйверовкак calico
или flannel
просто базовая маршрутизация L3.
Вот мои настройки:
2 узла с внешними ips:
10.10.10.21-22
- POD CIDR -
10.200.1-2.0/24
CNI Bridge conf ниже:
{
"cniVersion": "0.3.1",
"name": "bridge",
"type": "bridge",
"bridge": "cnio0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"ranges": [
[{"subnet": "10.200.2.0/24"}]
],
"routes": [{"dst": "0.0.0.0/0"}]
}}
Kubelet Сервис:
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=containerd.service
Requires=containerd.service
[Service]
ExecStart=/usr/local/bin/kubelet \
--config=/var/lib/kubelet/kubelet-config.yaml \
--container-runtime=remote \
--container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \
--image-pull-progress-deadline=2m \
--kubeconfig=/var/lib/kubelet/kubeconfig \
--network-plugin=cni \
--node-ip="10.10.10.22"
--address="10.10.10.22"
--register-node=true \
--v=2
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Маршруты для каждого узла приведены ниже (взять из одного узла):
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.200.1.0 10.10.10.21 255.255.255.0 UG 0 0 0 eth2
10.200.2.0 0.0.0.0 255.255.255.0 U 0 0 0 cnio0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Из рабочих узлов - я могу связаться с модулями из другого узла.Только изнутри контейнера маршрутизация не работает.
Таблица маршрутов из модуля:
/ # netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.200.2.1 0.0.0.0 UG 0 0 0 eth0
10.200.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Обратите внимание, что шлюз по умолчанию здесь - 10.200.2.1 для работника.2 - это соответствует интерфейсу cni0
работника 2.
worker-2 workerbins]$ ifconfig
cnio0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.200.2.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::1cc0:7fff:fe7f:1b55 prefixlen 64 scopeid 0x20<link>
ether 0a:58:0a:c8:02:01 txqueuelen 1000 (Ethernet)
RX packets 37801 bytes 2660893 (2.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20394 bytes 2502884 (2.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Пожалуйста, помогите