首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改Grafana舵图,将其安装为善意状态集,而不是部署

更改Grafana舵图,将其安装为善意状态集,而不是部署
EN

Stack Overflow用户
提问于 2022-02-02 18:06:14
回答 2查看 821关注 0票数 1

我从掌舵图中安装了kube-prometheus-stack回购普罗米修斯-社区

代码语言:javascript
复制
(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回购中的目录结构:

代码语言:javascript
复制
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。如果有人能帮上忙就太好了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-03 16:26:22

我就是这样找到答案的。在舵图中,如果有一个名为charts的文件夹,这意味着图表正在声明图表依赖项。查看Chart.yaml,我们看到了grafana依赖关系:

代码语言:javascript
复制
dependencies:
- name: grafana
  version: "6.21.*"
  repository: https://grafana.github.io/helm-charts
  condition: grafana.enabled

在这个链接上,我们可以查看他们的statefulset.yaml。在这里,我们发现Grafana使用以下条件创建了一个有状态集:

代码语言:javascript
复制
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "statefulset")}}

如果values.yaml中有一个包含依赖项名称的顶级标记的节,则依赖图表的值仍然可以被覆盖。因此,在本例中,依赖项名为grafana,因此我们可以使用以下配置覆盖依赖图的values.yaml

代码语言:javascript
复制
grafana:
  enabled: true
  persistence:
    enabled: true
    type: statefulset

(对于其他配置选项,看这个回购。这个图表中的所有values.yaml都可以被覆盖,只要它们在grafana:块中。)

依附图是Grafana的官方图表。但是,如果这对您不起作用(可能您没有使用持久性卷声明),则第二个选项是从正在使用的图表中禁用grafana依赖项,并部署Grafana图表的自定义版本。

代码语言:javascript
复制
grafana:
  enabled: false

一旦禁用grafana,就可以自行安装grafana,或者使用类似库斯托姆或简单的sed替换来修改生成的清单,或者分叉grafana头盔图,并使用部署为状态集的自定义grafana图表。

票数 2
EN

Stack Overflow用户

发布于 2022-02-02 21:33:58

如果要使持久性具有状态,则启用持久性。然而,我没有看到一个选项来使Grafana成为一个状态集,在您提到的图表中。

通常,如果相应的Helm图表支持持久化启用选项,您将看到它。例如:您可以在 grafana头盔图中启用持久性。你可以用它生成模板,并在你的回购中使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70960615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档