Nginx
April 7, 2023
Nginx. Ingress. Basic auth
Аутентификация по паролю в ингрессе.
dig tat.cameda.ga. +short 51.250.15.214
htpasswd -c auth cameda kubectl create secret generic basic-auth --from-file=auth
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && \ helm repo update && \ helm install ingress-nginx ingress-nginx/ingress-nginx
Ingress без TLS сертификата с авторизацией.
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cam-ingress annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/auth-type: basic nginx.ingress.kubernetes.io/auth-secret: basic-auth nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - Alex Wolf' spec: rules: - host: tat.cameda.ga http: paths: - path: / pathType: Prefix backend: service: name: app port: number: 80 --- apiVersion: v1 kind: Service metadata: name: app spec: selector: app: app externalTrafficPolicy: Local type: LoadBalancer loadBalancerIP: 51.250.15.214 ports: - port: 80 name: http targetPort: 80 - port: 443 name: https targetPort: 443 --- apiVersion: apps/v1 kind: Deployment metadata: name: app-deployment labels: app: app spec: replicas: 1 selector: matchLabels: app: app template: metadata: labels: app: app spec: containers: - name: app image: nginx:latest ports: - containerPort: 80 EOF
kubectl get ing NAME CLASS HOSTS ADDRESS PORTS AGE cam-ingress <none> tat.cameda.ga 84.201.135.235 80 72s
dig tat.cameda.ga. +short 84.201.135.235
Если имя секрета создать любое другое, не basic-auth, то будет 503 ошибка.
В DNS прописывается именно IP ingress, а не балансера. Тогда это будет работать.
Перед тем как создавать спеку ingress необходимо в начале поставить ingress-nginx через helm.
helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ingress-nginx default 1 2023-04-10 22:30:22.357894 +0300 MSK deployed ingress-nginx-4.6.0 1.7.0