• k8s集群授权prometheus(集群外部署)


    一、前言

    在集群外部prometheus想要调用k8s集群的apiserver获取监控数据需要通过token和ca验证,在集群内部部署的prometheus就不会有这个情况,因为集群内部部署prometheus pod的时候就已经注入了访问集群的token和ca文件,所以以下就针对k8s集群外部署的prometheus创建token和ca文件使得prometheus能够访问k8s集群的apiserver获取监控数据


    二、k8s集群创建RBAC对象

    vi prometheus-rabc.yaml

    1. apiVersion: v1
    2. kind: ServiceAccount
    3. metadata:
    4. name: prometheus
    5. namespace: prometheus
    6. ---
    7. apiVersion: rbac.authorization.k8s.io/v1
    8. kind: ClusterRole
    9. metadata:
    10. name: prometheus
    11. rules:
    12. - apiGroups:
    13. - ""
    14. resources:
    15. - nodes
    16. - services
    17. - endpoints
    18. - pods
    19. - nodes/proxy
    20. verbs:
    21. - get
    22. - list
    23. - watch
    24. - apiGroups:
    25. - "extensions"
    26. resources:
    27. - ingresses
    28. verbs:
    29. - get
    30. - list
    31. - watch
    32. - apiGroups:
    33. - ""
    34. resources:
    35. - configmaps
    36. - nodes/metrics
    37. verbs:
    38. - get
    39. - nonResourceURLs:
    40. - /metrics
    41. verbs:
    42. - get
    43. ---
    44. apiVersion: rbac.authorization.k8s.io/v1
    45. kind: ClusterRoleBinding
    46. metadata:
    47. name: prometheus
    48. roleRef:
    49. apiGroup: rbac.authorization.k8s.io
    50. kind: ClusterRole
    51. name: prometheus
    52. subjects:
    53. - kind: ServiceAccount
    54. name: prometheus
    55. namespace: prometheus

    创建命名空间

    kubectl create namespace prometheus

    创建rbac

    kubectl create -f prometheus-rabc.yaml

    在新版本的k8s中创建ServiceAccount不会默认创建secret,需要自己手动创建

    vi prometheus-secret.yaml 

    1. apiVersion: v1
    2. kind: Secret
    3. metadata:
    4. name: prometheus
    5. namespace: prometheus
    6. annotations:
    7. kubernetes.io/service-account.name: prometheus #这里需要填写创建的ServiceAccount的名称
    8. type: kubernetes.io/service-account-token

    查看token

    kubectl describe secret prometheus -n prometheus

     查看一下ServiceAccount

    kubectl describe sa prometheus -n prometheus

     prometheus调用k8s集群接口获取监控数据,使用以上的token和集群ca证书即可

    k8s集群的ca证书在以下目录中

    ls /etc/kubenetes/pki

  • 相关阅读:
    泛型「generic」讲解
    【前端vue面试】TypeScript
    Lua 如何在Lua中调用C/C++函数
    伪原创智能改写api百度-收录良好
    线上宕机问题(索引问题)
    java 阿里云上传照片
    Leetcode(633)——平方数之和
    EtherCAT IGH 驱动一个步进电机
    推荐系统笔记(十六):推荐系统图协同过滤的深入理解/
    JavaScript反爬虫技巧详细攻略
  • 原文地址:https://blog.csdn.net/ApexPredator/article/details/133879977