Ingress配置认证登录
Nginx认证登录参考
https://www.cnblogs.com/minseo/p/9234003.html
使用Ingress代理的站点怎么设置认证
- 使用密码工具生成密码文件
# htpasswd -c kibana.passwd admin
以上命令意思是给用户名为admin设置一个密码,在提示框连续输入两次需要设置的密码即可
会在当前目录生成文件auth字符串为加密后
# cat auth
admin:$apr1$eUtjJLBJ$AzkPhTx.GYwiT0q7phKhd1
如果没有htpasswd命令则使用以下命令安装
CentOS系统
# yum install httpd-tools
Ubuntu系统
# apt install apache2-utils
- 导入secret
创建secert名称为basic-auth 该密钥是从文件auth创建的
# kubectl create secret generic basic-auth --from-file=auth
- 修改ingress配置文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
generation: 1
name: kibana-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 4096m
nginx.ingress.kubernetes.io/auth-type: basic
# 使用刚才创建的secret名称
nginx.ingress.kubernetes.io/auth-secret: basic-auth
# "Authentication Required - admin"这个只是账号密码输错时的一个提示
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
spec:
rules:
- host: kibana.test.com
http:
paths:
- backend:
serviceName: kibana-outside-svc
servicePort: 80
path: /
tls:
- hosts:
- kibana.test.com
secretName: test.com
添加以下几行配置
# 认证模式basic
nginx.ingress.kubernetes.io/auth-type: basic
# 使用刚才创建的secret名称
nginx.ingress.kubernetes.io/auth-secret: basic-auth
# "Authentication Required - admin"这个只是账号密码输错时的一个提示
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin'
访问提示需要用户名和密码