k8s-5:traefik配置用户登录,限制K8S的web服务访问

原因:

像Traefik-Dashboard等页面,是没有用户登录限制的,希望给他们加上用户登录限制,我们需要在traeifk里给对应的ingress添加登录用的Middleware

一、用户名密码加密

1.设置你的账号密码,通过htpasswd进行加密

root@master25:/opt/zmj/traefik-middleware/middleware# htpasswd -nb admin admin@123
admin:$apr1$itptjwcw$4De5.rgiMF8LwwLMs/vmm.
# 用户名/密码: admin/admin@123

2.将加密的信息放入一个文件里

root@master25:# cat test
admin:$apr1$itptjwcw$4De5.rgiMF8LwwLMs/vmm.

3.进行base64加密,获得加密后的字符

root@master25: # cat test | openssl base64
YWRtaW46JGFwcjEkaXRwdGp3Y3ckNERlNS5yZ2lNRjhMd3dMTXMvdm1tLgo=

二、创建middleware.yaml

# Declaring the user list
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: auth
spec:
  basicAuth:
    secret: authsecret
---
# Note: in a kubernetes secret the string (e.g. generated by htpasswd) must be base64-encoded first.
# To create an encoded user:password pair, the following command can be used:
# htpasswd -nb user password | openssl base64
apiVersion: v1
kind: Secret
metadata:
  name: authsecret
  
data:
  users: |2
    YWRtaW46JGFwcjEkaXRwdGp3Y3ckNERlNS5yZ2lNRjhMd3dMTXMvdm1tLgo=

创建后就可以在traefik的界面看到

 

 

三、创建ingress.yaml

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: traefik-dashboard
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/router-entrypoint: http
    traefik.ingress.kubernetes.io/router.middlewares: traefik-traefik-auth@kubernetescrd  #再此处调用
    traefik.ingress.kubernetes.io/rule-type: PathPrefix
spec:
  rules:
    - host: XXXXXXX
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kubernetes-dashboard
                port:
                  number: 80

访问域名后

四、更新密码

如果我们要更新密码,可以重新使用htpasswd生成密码,然后放在policy文件中,使用命令行更新

kubectl create secret generic authsecret --from-file=users=./policy --dry-run=client -o yaml | kubectl apply -f -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值