ОС: Ubuntu 18.04.6
Тип брандмауэра: IPtables. UFW отключен.
У меня есть кластер Kubernetes с 3 узлами, которые предоставляют сервисы controlplane и etcd, названные cp01, cp02 и cp03.
я вижу это и т. д.
трафик от каждого из узлов Controlplane/etcd работает нормально. Приложение etcd, кажется, работает, хотя я заметил, что не могу делать некоторые вещи, например выбор
новый лидер.
Я заметил, что иногда обратный трафик блокируется. Вот пример сообщения журнала, показывающего блок:
23 мая 09:34:55 ядро cp02: [1245818.175864] DROP-INPUT: IN=eth2 OUT= MAC=00:50:AA:BB:CC:DD:00:50:AA:BB:CC:11:08: 00 SRC=192.168.101.188 DST=192.168.101.189 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=2380 DPT=36532 WINDOW=0 RES=0x00 RST URGP=0
Я не понимаю, почему эти пакеты теряются. В IPtables есть правило принимать все СВЯЗАННЫЕ, УСТАНОВЛЕННЫЕ
трафик. Иногда кажется, что этого не происходит, и пакеты действительно отбрасываются.
Вот соответствующий раздел IPtables. Обратите внимание на следующее:
- Строки 1-3 вставлены Kubernetes.
- Строки 4-7 — это стандартные правила (я так думаю).
- Строки 22 и 23 будут регистрировать, а затем отбрасывать все пакеты, которые не соответствуют существующему правилу.
- Линия 7 принимает весь СВЯЗАННЫЙ, УСТАНОВЛЕННЫЙ трафик, то есть, если трафик прошел через этот хост, он может вернуться на этот хост, поскольку он помечен как связанный или установленный трафик. Однако приведенное выше сообщение журнала предполагает, что этого не происходит.
cp03:~ # iptables -t filter -L INPUT --line-numbers -v
Цепочка INPUT (политика ACCEPT 0 пакетов, 0 байтов)
num pkts bytes target prot opt in out source target
1 2763 407K cali-INPUT все -- любое любое где угодно где угодно /* cali:Cz_abcdefghijklm */
2 2763 407K КУБЭ-БРАНДМАУЭР все -- любой любой где угодно где угодно
3 32 6559 KUBE-EXTERNAL-SERVICES all -- any any Anywhere Anywhere ctstate NEW /* внешние сервисные порталы kubernetes */
4 1 84 ACCEPT icmp -- любой любой везде где угодно /* 000 принять все icmp */
5 773 112K ACCEPT all -- lo anywherewhere/* 001 accept all to lo interface */
6 0 0 REJECT all -- !lo в любом месте localhost/8 /* 002 отклонить локальный трафик не на петлевом интерфейсе */ reject-with icmp-port-unreachable
7 1958 288K ПРИНЯТЬ все -- любое любое где угодно состояние RELATED,ESTABLISHED /* 003 принять соответствующие установленные правила */
8 0 0 ACCEPT tcp -- любой любой admin.example.org везде многопортовый dports ssh /* 101 Разрешить SSH с серверов управления с 192.168.100.16 */
9 0 0 ACCEPT udp -- любой любой cp01.example.org везде многопортовый dports 8472 /* 101 Canal/Flannel VXLAN overlay network from 192.168.101.188 */
10 0 0 ACCEPT udp -- любой любой cp02.example.org везде многопортовый dports 8472 /* 101 Canal/Flannel VXLAN overlay network from 192.168.101.189 */
11 0 0 ACCEPT udp -- любой любой cp03.example.org везде многопортовый dports 8472 /* 101 Canal/Flannel VXLAN overlay network from 192.168.101.190 */
12 0 0 ACCEPT tcp -- любой любой cp01.example.org везде многопортовый dports 6443 /* 101 API-сервер Kubernetes с адреса 192.168.101.188 */
13 0 0 ACCEPT tcp -- любой любой cp02.example.org везде многопортовый dports 6443 /* 101 API-сервер Kubernetes с адреса 192.168.101.189 */
14 0 0 ACCEPT tcp -- любой любой cp03.example.org везде многопортовый dports 6443 /* 101 API-сервер Kubernetes с 192.168.101.190 */
15 4 220 ACCEPT tcp -- любой любой cp01.example.org везде многопортовый dports 2379:2380 /* 101 запрос клиента etcd от 192.168.101.188 */
16 4 220 ACCEPT tcp -- любой любой cp02.example.org везде многопортовый dports 2379:2380 /* 101 запрос клиента etcd от 192.168.101.189 */
17 0 0 ACCEPT tcp -- любой любой cp03.example.org везде многопортовый dports 2379:2380 /* 101 запрос клиента etcd от 192.168.101.190 */
18 0 0 ACCEPT tcp -- любой любой cp01.example.org везде многопортовый dports 10250 /* 101 API kubelet от 192.168.101.188 */
19 0 0 ACCEPT tcp -- любой любой cp02.example.org везде многопортовый dports 10250 /* 101 API kubelet от 192.168.101.189 */
20 0 0 ACCEPT tcp -- любой любой cp03.example.org везде многопортовый dports 10250 /* 101 API kubelet от 192.168.101.190 */
21 1 40 LOG all -- any any anywhere any limit: avg 3/min batch 5 /* 998 Log all drops */ Префикс предупреждения уровня LOG "DROP-INPUT: "
22 1 40 DROP all -- любой любой в любом месте в любом месте /* 999 отбросить все остальные запросы */