Ingress 账号密码登录配置

首先安装apache工具

sudo apt-get install apache2-utils

生成auth文件

# 生成auth文件
$ htpasswd -c auth zxuser
New password: 
New password:
Re-type new password:
Adding password for user zxuser

查看文件并复制auth内容,并将内容转为base64待用

# 查看文件
vim auth
# 转base64 等待稍后使用
base64 auth

创建 ingress-auth.yaml 文件

apiVersion: v1
data:
  # auth 此处填写上面获得的base64字符串
  auth: enhasdadasdj=========================mWapsdasdL1RasdasdasdLw==
kind: Secret
metadata:
  name: zxig-auth
  namespace: {{ .Values.namespace }}
type: Opaque

下面为 Ingress 中需要的配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: {{ .Values.namespace }}
  labels:
    app: testapp
    service: test
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
    # 身份验证的类型
    nginx.ingress.kubernetes.io/auth-type: basic
    # 包含用户/密码定义的密钥的名称
    nginx.ingress.kubernetes.io/auth-secret: zxig-auth
    # 使用适当的上下文显示消息,为什么需要身份验证
    nginx.ingress.kubernetes.io/auth-realm: '请使用账号密码登录!'
spec:
  ingressClassName: nginx
  rules:
  - host: {{ .Values.hostName }}
    http:
      paths: 
      - path: /status(/.*)
        pathType: Prefix
        backend:
          service:
            name: test
            port: 
              number: 80

参考 Basic Authentication - NGINX Ingress Controller (kubernetes.github.io)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐