You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX Ingress Controller配置Basic Auth遇403,请求解决Secret加载问题

解决NGINX Ingress Controller Basic Auth 403及Secret加载失败问题

根据你提供的日志(找不到/etc/nginx/secrets/my-demo-htpasswd)和配置信息,问题出在Secret的挂载或权限配置上,以下是分步解决方案:

1. 确认Secret结构完全正确

NGINX官方Ingress Controller要求用于Basic Auth的Secret必须满足:

  • 类型为Opaque
  • data字段包含auth键,值为htpasswd文件内容的Base64编码(注意不是文件本身的编码)

重新生成并创建Secret:

# 生成htpasswd文件(替换user1为你的用户名)
htpasswd -c htpasswd user1
# 生成Base64编码(Linux/macOS)
BASE64_AUTH=$(base64 -w 0 htpasswd)

创建Secret的YAML文件:

apiVersion: v1
kind: Secret
metadata:
  name: htpasswd
  namespace: <你的Ingress命名空间>
type: Opaque
data:
  auth: ${BASE64_AUTH}

应用到集群:

kubectl apply -f secret.yaml

2. 验证Ingress注解与命名空间一致性

  • 确保Ingress的nginx.org/basic-auth-secret注解值严格匹配Secret的名称(这里是htpasswd)
  • 确认Ingress和Secret处于完全相同的命名空间,跨命名空间的Secret无法被Ingress Controller自动挂载

3. 检查Ingress Controller的权限

如果NGINX Ingress Controller部署在独立命名空间(比如nginx-ingress),而你的Ingress/Secret在其他命名空间,需要给Controller的ServiceAccount添加读取目标命名空间Secret的权限:

创建Role和RoleBinding:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: nginx-ingress-secret-reader
  namespace: <你的Ingress命名空间>
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: nginx-ingress-secret-reader-binding
  namespace: <你的Ingress命名空间>
subjects:
- kind: ServiceAccount
  name: nginx-ingress  # 替换为Controller使用的ServiceAccount名称
  namespace: <Controller的部署命名空间>
roleRef:
  kind: Role
  name: nginx-ingress-secret-reader
  apiGroup: rbac.authorization.k8s.io

应用权限配置:

kubectl apply -f rbac.yaml

4. 强制刷新Ingress Controller配置

重启Controller Pod以加载新的Secret和权限配置:

kubectl rollout restart deployment nginx-ingress -n <Controller的部署命名空间>

5. 验证挂载结果

进入Controller Pod检查Secret是否被正确挂载:

kubectl exec -it <nginx-ingress-pod-name> -n <Controller的部署命名空间> -- ls /etc/nginx/secrets/

如果能看到htpasswd文件,说明挂载成功,此时重新访问服务即可触发Basic Auth验证。

内容的提问来源于stack exchange,提问作者Alfchee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:54:59