Вы озадачены сетью Kubernetes и тем, как предоставить доступ к вашим сервисам внешнему миру? Не смотрите дальше! В этой статье блога мы погрузимся в увлекательный мир Ingress и рассмотрим различные методы его настройки и управления с помощью файла YAML. Итак, берите чашечку кофе и начнем!
Во-первых, что такое Ingress? Проще говоря, Ingress — это ресурс Kubernetes, который действует как обратный прокси-сервер и обеспечивает внешний доступ к сервисам, работающим внутри кластера. Он предоставляет единую точку входа для маршрутизации и балансировки нагрузки к различным службам на основе различных правил.
Теперь давайте рассмотрим несколько практических примеров того, как можно настроить Ingress с помощью файла YAML.
-
Базовая конфигурация входящего трафика:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: my-service port: number: 80
В этом примере любой трафик, поступающий на внешний IP-адрес кластера, будет направляться на порт
my-service
, работающий на порту 80. -
Маршрутизация на основе пути:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: rules: - http: paths: - path: /api pathType: Prefix backend: service: name: api-service port: number: 8080 - path: /web pathType: Prefix backend: service: name: web-service port: number: 80
В этом примере трафик к
/api
будет направляться на портapi-service
, работающий на порту 8080, а трафик к/web
будет направляться на порт 8080.web-service
работает на порту 80. -
Маршрутизация на основе хоста:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: rules: - host: api.example.com http: paths: - path: / pathType: Prefix backend: service: name: api-service port: number: 8080 - host: web.example.com http: paths: - path: / pathType: Prefix backend: service: name: web-service port: number: 80
В этом примере трафик с именем хоста
api.example.com
будет направлен наapi-service
, а трафик с именем хостаweb.example.com
будет направлен наweb-service
. -
Завершение TLS:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: tls: - hosts: - example.com secretName: my-tls-secret rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: my-service port: number: 80
В этом примере завершение TLS включено для имени хоста
example.com
, а сертификат TLS хранится вmy-tls-secret
. Трафик будет направляться на портmy-service
, работающий на порту 80.
Это всего лишь несколько примеров того, как можно настроить Ingress с помощью файла YAML. Помните, что Ingress предлагает широкий спектр возможностей, включая перенаправление SSL, маршрутизацию на основе заголовков и многое другое.
В заключение отметим, что Ingress — это мощный инструмент для управления внешним доступом к вашим сервисам Kubernetes. С помощью файла YAML вы можете легко определить правила маршрутизации, балансировку нагрузки и завершение TLS. Итак, попробуйте!