linuxea:ingress-nginx basic auth认证的优雅实现

marksugar
2022-04-28 / 0 评论 / 758 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年04月28日,已超过220天没有更新,若内容或图片失效,请留言反馈。

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与canary
ingress-nginx应用常见的两种方式
k8s下kube-prometheus监控ingress-nginx

0

评论

博主关闭了当前页面的评论