Как се осъществява пренасочването на трафика към ingress от вътре в клъстера?
sobes.tech AI
Отговор от AI
За пренасочване на трафика от вътре в клъстера към Ingress се използва DNS името на услугата Ingress Controller. В стандартната конфигурация, Ingress Controller се разгръща като услуга тип LoadBalancer или NodePort.
-
Откриване на услуга: Приложението вътре в клъстера използва DNS името на услугата, която излага (прави видима) Ingress Controller. Например
nginx-ingress-controller.ingress-nginx.svc.cluster.local, ако се използва nginx-ingress с подходящо име на услуга. -
IP на услугата/ClusterIP: DNS сървърът на Kubernetes клъстера (например CoreDNS) разрешава това DNS име към ClusterIP на услугата Ingress Controller.
-
kube-proxy:
kube-proxyна възела, където работи приложението, прихваща трафика, насочен към ClusterIP услугата на Ingress Controller. -
iptables/ipvs:
kube-proxyизползва правилаiptablesилиipvs, за да маршрутизира трафика към един от подовете на Ingress Controller. -
Обработка в Ingress Controller: Подовете на Ingress Controller получават трафика и според правилата на Ingress ресурсите го пренасочват към съответната услуга вътре в клъстера.
Пример за заявка от под:
# Заявка към услуга чрез Ingress, използвайки вътрешен DNS
curl http://my-app.example.com
Тук my-app.example.com се разрешава от DNS сървъра на клъстера към ClusterIP на услугата Ingress Controller, ако съответните записи са конфигурирани или ако Ingress Controller е настроен да обработва такива заявки директно (по-малко типичен случай за вътрешен трафик). По-голямата част от вътрешния трафик достига до услугата по нейното DNS име. Ако трябва явно да премине през Ingress от вътре в клъстера, трябва да се уверите, че Ingress Controller е достъпен чрез ClusterIP или локален IP на подовете и че DNS записът или механизмът за маршрутизиране го насочва към него.
По-широко разпространеният модел за комуникация между услуги в клъстера е директният достъп до услугата по нейното DNS име (<service-name>.<namespace>.svc.cluster.local), без да се използва Ingress. Пренасочването на трафика към Ingress от вътре в клъстера обикновено е необходимо за тестове или специфични сценарии за маршрутизиране.