• 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

  • 相关阅读:
    2019-2021年上市公司润灵ESG评分评级数据
    循环神经网络(RNN)之长短期记忆(LSTM)
    pnpm入门教程
    Makefile
    2022年下半年软考信息安全工程师如何备考?
    NVIDIA CUDA 高度并行处理器编程(八):并行模式:直方图计算
    loadrunner-controller-场景执行run
    动态规划--(不同的子序列,编辑距离,两个字符串的删除)
    Cesium实现卫星在轨绕行
    ch552g下载时遇到的可能问题
  • 原文地址:https://blog.csdn.net/ApexPredator/article/details/133879977