kube-prometheus setup
setup
Helm屏蔽了中间过程,后期关于kube-prometheus的说明全部基于jsonnet生成的manifest来进行说明。
执行 build.sh
脚本生成manifests或者使用git仓库自带的mainifests,在manifests目录下有一个setup目录,该目录下主要存放了kube-prometheus的crd资源和命名空间资源。
$ ls
0alertmanagerConfigCustomResourceDefinition.yaml 0prometheusruleCustomResourceDefinition.yaml
0alertmanagerCustomResourceDefinition.yaml 0scrapeconfigCustomResourceDefinition.yaml
0podmonitorCustomResourceDefinition.yaml 0servicemonitorCustomResourceDefinition.yaml
0probeCustomResourceDefinition.yaml 0thanosrulerCustomResourceDefinition.yaml
0prometheusagentCustomResourceDefinition.yaml namespace.yaml
0prometheusCustomResourceDefinition.yaml
这些以0开头的文件主要用来存放kube-prometheus用到的crd资源,关于crd不是一篇两篇blog能说清楚的,这里就不展开了,这里需要关注的就是namespace.yaml文件,这个文件需要创建Kube-prometheus部署的命名空间
# 指定k8s核心API版本
apiVersion: v1
# 资源类型为命名空间
kind: Namespace
# 元数据
metadata:labels:# PSA 警告策略:当用户在此命名空间中创建或更新 Pod,且该 Pod 处于 `privileged`(特权)模式时,API Server 会返回一条警告信息,但不会阻止创建。# https://kubernetes.io/docs/concepts/security/pod-security-standards/pod-security.kubernetes.io/warn: privileged# 指定使用最新的 Pod Security 标准版本来评估警告策略。pod-security.kubernetes.io/warn-version: latest# 指定Kube-prometheus的命名空间name: monitoring
当执行 kubectl create -f manifests/setup
的时候便会将上述crd和namespace应用到k8s集群中