ingressnginx basic auth认证的优雅实现

2023年 7月 15日 58.3k 0

ingress-nginx basic auth认证是最简单和基础的,要使用它,需要安装httpd,提供一个htpasswd,而后使用htpasswd -c auth NAME 的方式创建一个文件,而后是以哦那个create来创建,如下

kubectl create secret generic bauth --from-file=NAME

这通常能解决使用,但是需要额外安装一个软件包,或许需要另外一个方式来解决

通过htaccesstools.com 或者https://wtools.io/generate-htpasswd-online来生成加密的密钥信息,如下

我通过https://wtools.io/generate-htpasswd-online生成

用户名: linuxea
密码: OpSOQKs,qDJ1dSvzs

生成generation如下

linuxea:$apr1$btmgi74s$JEKIq8dTE3OI8o5a1qQvq0

手动用base64加密

[root@linuxea.com ~]# echo 'linuxea:$apr1$btmgi74s$JEKIq8dTE3OI8o5a1qQvq0' |base64
bGludXhlYTokYXByMSRidG1naTc0cyRKRUtJcThkVEUzT0k4bzVhMXFRdnEwCg==

而后直接复制这串字符串添加到配置清单中

apiVersion: v1
data:
  auth: bGludXhlYTokYXByMSRidG1naTc0cyRKRUtJcThkVEUzT0k4bzVhMXFRdnEwCg==
kind: Secret
metadata:
  name: basic-auth
  namespace: monitoring
type: Opaque

在应用到ingress-nginx的配置中即可

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: monitoring-ui
  namespace: monitoring
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
    nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - input: Trump "
spec:
  ingressClassName: nginx
  rules:
  - host: local.prom.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: prometheus-k8s
            port:
              number: 9090

配置完成打开这个域名image-20220428211847498.png

image-20220428212226606.png

参考

ingress-nginx的rewrite与canaryingress-nginx应用常见的两种方式k8s下kube-prometheus监控ingress-nginx

相关文章

LeaferJS 1.0 重磅发布:强悍的前端 Canvas 渲染引擎
10分钟搞定支持通配符的永久有效免费HTTPS证书
300 多个 Microsoft Excel 快捷方式
一步步配置基于kubeadmin的kubevip高可用
istio全链路传递cookie和header灰度
REST Web 服务版本控制

发布评论