我从掌舵图中安装了kube-prometheus-stack回购普罗米修斯-社区
(k8s: minikube) $ kubectl get deploy,statefulset -n monitoring
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/kube-prometheus-stack-grafana 1/1 1 1 20d
deployment.apps/kube-prometheus-stack-kube-state-metrics 1/1 1 1 20d
deployment.apps/kube-prometheus-stack-operator 1/1 1 1 20d
NAME READY AGE
statefulset.apps/alertmanager-kube-prometheus-stack-alertmanager 1/1 20d
statefulset.apps/prometheus-kube-prometheus-stack-prometheus 1/1 20d正如您所看到的,默认情况下,grafana安装为Deployment,但我希望通过更改它的掌舵图,而不是集群上的直接kubectl edit,将其更改为Statefulset。
以下是kube-prometheus-stack回购中的目录结构:
kube-prometheus-stack vjwilson(k8s: minikube) $ ls
Chart.lock charts Chart.yaml CONTRIBUTING.md crds README.md templates values.yaml
kube-prometheus-stack (k8s: minikube) $ tree -d
.
├── charts
│ ├── grafana
│ │ ├── ci
│ │ ├── dashboards
│ │ └── templates
│ │ └── tests
│ ├── kube-state-metrics
│ │ └── templates
│ └── prometheus-node-exporter
│ ├── ci
│ └── templates
├── crds
└── templates
├── alertmanager
├── exporters
│ ├── core-dns
│ ├── kube-api-server
│ ├── kube-controller-manager
│ ├── kube-dns
│ ├── kube-etcd
│ ├── kubelet
│ ├── kube-proxy
│ └── kube-scheduler
├── grafana
│ └── dashboards-1.14
├── prometheus
│ └── rules-1.14
└── prometheus-operator
└── admission-webhooks
└── job-patch
30 directories我很困惑,我被困在哪里,在这个舵上改变和告诉grafana安装为Statefulset而不是默认的Deployment。如果有人能帮上忙就太好了。
发布于 2022-02-03 16:26:22
我就是这样找到答案的。在舵图中,如果有一个名为charts的文件夹,这意味着图表正在声明图表依赖项。查看Chart.yaml,我们看到了grafana依赖关系:
dependencies:
- name: grafana
version: "6.21.*"
repository: https://grafana.github.io/helm-charts
condition: grafana.enabled在这个链接上,我们可以查看他们的statefulset.yaml。在这里,我们发现Grafana使用以下条件创建了一个有状态集:
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "statefulset")}}如果values.yaml中有一个包含依赖项名称的顶级标记的节,则依赖图表的值仍然可以被覆盖。因此,在本例中,依赖项名为grafana,因此我们可以使用以下配置覆盖依赖图的values.yaml:
grafana:
enabled: true
persistence:
enabled: true
type: statefulset(对于其他配置选项,看这个回购。这个图表中的所有values.yaml都可以被覆盖,只要它们在grafana:块中。)
依附图是Grafana的官方图表。但是,如果这对您不起作用(可能您没有使用持久性卷声明),则第二个选项是从正在使用的图表中禁用grafana依赖项,并部署Grafana图表的自定义版本。
grafana:
enabled: false一旦禁用grafana,就可以自行安装grafana,或者使用类似库斯托姆或简单的sed替换来修改生成的清单,或者分叉grafana头盔图,并使用部署为状态集的自定义grafana图表。
发布于 2022-02-02 21:33:58
如果要使持久性具有状态,则启用持久性。然而,我没有看到一个选项来使Grafana成为一个状态集,在您提到的图表中。
通常,如果相应的Helm图表支持持久化启用选项,您将看到它。例如:您可以在这 grafana头盔图中启用持久性。你可以用它生成模板,并在你的回购中使用它。
https://stackoverflow.com/questions/70960615
复制相似问题