Я запутался во входе nginx в Kubernetes.Я смог использовать его с «базовой аутентификацией nginx» (пока не могу сделать это с oauth2
).
Я установил через helm:
helm install stable/nginx-ingress --name app-name --set rbac.create=true
Это создает две службы, nginx-ingress-controller
и nginx-ingress-backend
.
Когда я создаю вход, этот вход нацелен на один и только один nginx-ingress-controller
, но я понятия не имею, как:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tomcat
annotations:
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - foo"
nginx.ingress.kubernetes.io/rewrite-target: /
namespace: kube-system
spec:
rules:
- host:
http:
paths:
- path: /
backend:
serviceName: tomcat-deployment-service
servicePort: 8080
Когда я получаю этот Ingress с выхода kubectl get ingress -n kube-system
, он имеет открытый внешний IP-адрес.
Что относительно это то, что basic-auth
НЕ ПРИМЕНЯЕТСЯ к этому внешнему IP;это широко открыто!Аутентификация Nginx включается только тогда, когда я пытаюсь посетить IP nginx-ingress-controller
.
У меня много вопросов.
- Как сделать вход, созданный из
kubectl apply -f
ingress.yaml
нацелен на конкретный nginx-ingress-controller? - Как мне не дать этому новому
ingress
иметь внешний IP-адрес? - Почему не запускается
nginx
аутентификация? - Какой IP-адрес я предполагаю использовать (
nginx-ingress-controller
или сгенерированный?) - Если я предполагаю использовать сгенерированный IP-адрес, как насчет одного из контроллера?
Я искал спуск, рабочие примеры (и разбрасывал разрозненные, изменяющие документацию и проблемы с github) буквально days.
EDIT:
В этой "официальной" документации неясно, будет ли погода или нет http://10.2.29.4/
IP от ingress
или controller
.Я предполагаю, что controller
, потому что, когда я запускаю это, другой даже не аутентифицируется ( это позволяет мне войти без запроса пароля ).Оба IP-адреса, которые я использую, являются внешними (общедоступными) в GCP.