Вы озадачены сетью 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. Итак, попробуйте!