ZBLOG

kube-prometheus页面添加鉴权

要在kube-prometheus页面中添加鉴权,可以使用以下步骤:

  1. 创建一个包含用户名和密码的Secret对象,并将其挂载到Prometheus的Pod中。
  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: prometheus-basic-auth
  5. type: Opaque
  6. data:
  7. username: base64encodedusername
  8. password: base64encodedpassword
  9. ---
  10. apiVersion: apps/v1
  11. kind: Deployment
  12. metadata:
  13. name: prometheus-deployment
  14. spec:
  15. template:
  16. spec:
  17. containers:
  18. - name: prometheus-container
  19. image: prom/prometheus:v2.26.0
  20. args:
  21. - '--config.file=/etc/prometheus/prometheus.yml'
  22. - '--storage.tsdb.path=/prometheus'
  23. - '--web.enable-lifecycle'
  24. ports:
  25. - containerPort: 9090
  26. volumeMounts:
  27. - name: config-volume
  28. mountPath: /etc/prometheus/
  29. readOnly: true
  30. - name: prom-data-volume
  31. mountPath: /prometheus
  32. readOnly:false
  33. - name : basic-auth-config
  34. mountPath : /basic_auth_config/
  35. volumes :
  36. - configMap :
  37. name : prom-config-map
  38. name : config-volume
  39. - emptyDir :
  40. medium : Memory
  41. name : prom-data-volume
  42. - secret :
  43. secretName : prometheus-basic-auth
  44. name : basic-auth-config
  1. 编辑Promethus配置文件prometheous.yaml,并启用基本身份验证。 在global段下面添加authenticaiton段,然后在其中指定名为“basic_auth” 的字典,该字典将由用户名称和密码组成,这些信息将用于验证用户的请求。
  1. apiVersion: monitoring.coreos.com/v1
  2. kind: Prometheus
  3. metadata:
  4. name: kube-prometheus-stack-prometheus
  5. spec:
  6. serviceAccountName : prometheus-k8s
  7. securityContext :
  8. fsGroup : 2000 #Promethues默认使用1000,但是由于不能在容器内运行root权限,所以需要更改fsGroup以使用自定义UID和GID
  9. replicas: 2
  10. resources:
  11. requests:
  12. memory: "400Mi"
  13. cpu: "500m"
  14. limits:
  15. memory: "700Mi"
  16. cpu: "800m"
  17. serviceMonitorSelector:
  18. matchLabels:
  19. release: kube-prometheus-stack
  20. alerting:
  21. alertmanagers:
  22. - namespace : kube-prometheus-stack
  23. name: alertmanager-main
  24. ruleSelector:
  25. matchLabels:
  26. prometheus: kube-prometheus-stack-prometheus
  27. global:
  28. scrape_interval : '60s'
  29. evaluation_interval : '60s'
  30. external_labels :
  31. monitor : 'kube-prometheus-stack'
  32. authentication :
  33. basic_auth :
  34. username : ${BASIC_AUTH_USERNAME} #这里引用了一个环境变量BASIC_AUTH_USERNAME,这个环境变量的值来自前面创建的Secret对象中的用户名字段。
  35. password : ${BASIC_AUTH_PASSWORD} #同上
  1. 创建一个Service对象,并指定它要暴露的端口。
  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: prometheus-service
  5. spec:
  6. selector:
  7. app.kubernetes.io/name: prometheus
  8. ports:
  9. - name: web
  10. port: 9090
  11. targetPort: 9090
  1. 创建一个Ingress对象,并指定它要使用的认证方法。 这里使用了Nginx Ingress Controller并开启了基本身份验证。
  1. apiVersion: networking.k8s.io/v1beta1
  2. kind: Ingress
  3. metadata:
  4. name: prometheus-ingress
  5. annotations:
  6. nginx.ingress.kubernetes.io/auth-type: basic #开启基本身份验证
  7. nginx.ingress.kubernetes.io/auth-secret: prometheus-basic-auth #这里引用之前创建的Secret对象
  8. spec:
  9. rules:
  10. - host: example.com #替换为你自己的域名
  11. http:
  12. paths:
  13. - path: /prometheus/
  14. backend:
  15. serviceName: prometheus-service
  16. servicePort: web
  1. 部署完成后,访问Promethus页面时会弹出用户名和密码框,输入正确的用户名和密码即可进入kube-prometheus页面。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4601

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?