Настройка кластера:
- ОС: Ubuntu 18.04, рекомендуемые параметры установки с Kubernetes
- Кластер загружается с помощью Kubespray
- CNI - Calico
Краткие сведения (когда ip службы redis равен 10.233.90.37
):
Служба Kubernetes (NodePort, LoadBalancer, ClusterIP) не будет перенаправлять порты, отличные от 80 и 443, для модулей.Порты модуля могут отличаться, но запросы к Службе будут превышены по времени, если порт Службы не равен 80 или 443.
Запросы от хост-машины к Службе Kubernetes на портах, отличных от 80 и 443, работают.НО запросы от модулей к этим другим портам не выполняются.
Запросы от модулей к службам на портах 80 и 443 работают.
user@host: curl 10.233.90.37:80
200 OK
user@host: curl 10.233.90.37:5432
200 OK
# ... exec into Pod
```bash
bash-4.4# curl 10.233.90.37:80
200 OK
bash-4.4# curl 10.233.90.37:5432
Error ... timeout ...
user@host: kubectl get NetworkPolicy -A
No resources found.
user@host: kubectl get PodSecurityPolicy -A
No resources found.
Пример службы:
apiVersion: v1
kind: Service
metadata:
labels:
app: redis
name: redis
namespace: namespace
spec:
ports:
- port: 6379
protocol: TCP
targetPort: 6379
name: redis
- port: 80
protocol: TCP
targetPort: 6379
name: http
selector:
app: redis
type: NodePort # I've tried ClusterIP, NodePort, and LoadBalancer
Что происходит с этим безумным поведением порта Сервиса Kubernetes!?
После отладки я обнаружил, что это может быть связано с конфигурацией ufw и iptables.
Настройки ufw (очень допустимо):
Status: enabled
80 ALLOW Anywhere
443 ALLOW Anywhere
6443 ALLOW Anywhere
2379 ALLOW Anywhere
2380 ALLOW Anywhere
10250/tcp ALLOW Anywhere
10251/tcp ALLOW Anywhere
10252/tcp ALLOW Anywhere
10255/tcp ALLOW Anywhere
179 ALLOW Anywhere
5473 ALLOW Anywhere
4789 ALLOW Anywhere
10248 ALLOW Anywhere
22 ALLOW Anywhere
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
6443 (v6) ALLOW Anywhere (v6)
2379 (v6) ALLOW Anywhere (v6)
2380 (v6) ALLOW Anywhere (v6)
10250/tcp (v6) ALLOW Anywhere (v6)
10251/tcp (v6) ALLOW Anywhere (v6)
10252/tcp (v6) ALLOW Anywhere (v6)
10255/tcp (v6) ALLOW Anywhere (v6)
179 (v6) ALLOW Anywhere (v6)
5473 (v6) ALLOW Anywhere (v6)
4789 (v6) ALLOW Anywhere (v6)
10248 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
Развертывание Kubespray завершается неудачно с отключенным ufw.Развертывание Kubespray успешно выполняется с включенным ufw.
После развертывания отключение ufw позволит модулям подключаться к портам, отличным от 80, 443. Однако кластер падает при отключении ufw.
Любая идея, чтопродолжается?Я пропускаю порт в конфигурации UFW ....?Кажется странным, что для успешной установки kubespray потребуется ufw.