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