成功最有效的方法就是向有经验的人学习!

kubernets ingress添加权限HTTP-AUTH认证

当使用ingress的方式做Web服务的反向代理时,有时会需要增加对反向页面的权限认证(例如:反向代理到kibana页面时),还好Kubernets非常强大,这么简单的特性当然也是支持的,主要依靠secret和注解方式来实现。

虽然很少会把ingress直接对外服务,但这种情况也不是没有。

第一步,创建账号密码文件
这里需要使用到密码文件生成工具htpasswd,在ubuntu下可以使用以下命令进行安装:

sudo apt-get install apache2-utils

随后使用htpasswd命令创建密码文件auth,以及两个用户user1和user2:

$ htpasswd -c auth user1
New password: <bar>
New password:
Re-type new password:
Adding password for user user1

$ htpasswd auth user2
2nd user:
htpasswd auth user2
New password: <bar>
New password:
Re-type new password:
Adding password for user user2

第二步,创建kubernets secret

kubectl -n <namespace> create secret generic basic-auth --from-file=auth
secret "basic-auth" created

第三步,创建ingress配置文件
ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-with-auth
您暂时无权查看此隐藏内容!
spec: rules: - host: foo.bar.com http: paths: - path: / backend: serviceName: echoheaders servicePort: 80

参考链接:

https://www.linkedin.com/pulse/kubernetes-add-basic-auth-protection-you-ingresse-controllers-laza

https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/auth
内容查看本文隐藏内容查看需要消耗2土豆币,请先
土豆币按需购买,不退换,请考虑清楚后购买。
赞(1) 打赏
未经允许不得转载:陈桂林博客 » kubernets ingress添加权限HTTP-AUTH认证
分享到

大佬们的评论 2

  1. #2

    kubectl get secret basic-auth -o yaml
    apiVersion: v1
    data:
    auth: Zm9vOiRhcHIxJE9DRzZYeWJcJGNrKDBGSERBa29YWUlsSDkuY3lzVDAK #这里的结构直接决定你能否正常使用,auth: xxxxxx
    kind: Secret
    metadata:
    name: basic-auth
    namespace: default
    type: Opaque

    admin4年前 (2021-05-07)回复
  2. #1


    https://rocdu.gitbook.io/ingress-nginx-docs-cn/docs/user-guide/nginx-configuration/configmap

    参考文档

    admin4年前 (2021-04-09)回复

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册