Для просмотра этой видеозаписи необходимо авторизоваться

Авторизация
Kubernetes

От: admin Видео: 73

k8s Pod

От: admin 8:28

k8s ReplicaSet

От: admin 11:22

k8s Deployment

От: admin 15:12

k8s Service

От: admin 7:13

k8s ingress

От: admin 3:39

k8s Namespace

От: admin 10:26

k8s Service DNS

От: admin 11:29

k8s Helm Chart

От: admin 23:35

k8s CI/CD

От: admin 2:40

Описание

admin

От: admin

Дата загрузки: 07/03/2023

Теги: k8s  

Курс СлЁрм по k8s

Поделиться

Share

Добавить в

Вам надо авторизоваться чтобы добавлять видеозаписи к спискам воспроизведения.

Комментарии (2)

чтобы комментировать.

admin 07/03/2023

Проверка знаний:
1. Что такое Ingress ?
2. Что такое Ingress Controller?
3. Каким образом можно указать дополнительные настройки для Ingress Controller ?

admin 07/03/2023

Давайте рассмотрим простой манифест ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress-nginx
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
defaultBackend:
service:
name: my-service
port:
number: 80

В этом манифесте указан только backend, и Ingress Controller создаст такую конфигурацию, которая будет направлять все запросы из интернета в сервис my-service, не зависимо от поля Host: в заголовке HTTP-запроса. Естественно, если у вас в кластере есть еще ingress-манифесты, в которых указаны правила с полем host, трафик по этим правилам продолжит маршрутизироваться по принципу более специфичного маршрута.

Развернем простой манифест

kubectl apply -f nginx-ingress.yaml

И попробуем curl'ить произвольное hostname (На каждую площадку выделен реальный ip адрес и прописана wildcard DNS запись, поэтому в curl запросе меняем 000 на номер своего логина).

curl asdf.s000002.edu.slurm.io

Если посмотреть ingress'ы в кластере, то можно увидеть, что у нашего ingress'а в поле HOSTS указана *, т.е. под него попадают все запросы

kubectl get ingress

NAME HOSTS ADDRESS PORTS AGE
my-ingress-nginx * 80 6s

А теперь посмотрим на манифест, в котором указано имя веб-сервера, изменим номер студента на свой

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress-nginx
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: my.s<номер своего логина>.edu.slurm.io
http:
paths:
- pathType: ImplementationSpecific
backend:
service:
name: my-service
port:
number: 80

и применим

kubectl apply -f host-ingress.yaml

Если теперь получить список ingress'ов, то увидим что в поле HOSTS теперь не *, а конкретное имя.

kubectl get ingress

NAME HOSTS ADDRESS PORTS AGE
my-ingress-nginx my.s000002.edu.slurm.io 172.21.200.5 80 5m56s

Попробуем послать запросы с помощью curl на адрес из ingress - должно отвечать наше приложение.

На запросы на все другие адреса ingress контроллер должен возвращать 404 ошибку.

Advertisement