K8s下部署grafana

1. 系统要求

最小化的软硬件要求

最小化硬件要求

  • 磁盘空间: 1 GB
  • 内存: 750 MiB (approx 750 MB)
  • CPU: 250m (approx 2.5 cores)

2. k8s部署grafana步骤

1) 创建名字空间

bash 复制代码
kubectl create namespace my-grafana

2) 创建yaml

bash 复制代码
vim  grafana.yaml

yaml包含如下三个资源对象

Object Description
Persistent Volume Claim (PVC) 存储声明
Service 提供pod的网络访问
Deployment 负责创建pod,并确保可以滚动更新和管理副本集
Groovy 复制代码
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: grafana
  name: grafana
spec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      securityContext:
        fsGroup: 472
        supplementalGroups:
          - 0
      containers:
        - name: grafana
          image: grafana/grafana:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: http-grafana
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /robots.txt
              port: 3000
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 2
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 3000
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 250m
              memory: 750Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-pv
      volumes:
        - name: grafana-pv
          persistentVolumeClaim:
            claimName: grafana-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
spec:
  ports:
    - port: 3000
      protocol: TCP
      targetPort: http-grafana
  selector:
    app: grafana
  sessionAffinity: None
  type: LoadBalancer

3) 执行yaml

这里并没有创建pv,所以要确保有可用的pv使用(至少要有1Gi的pv可用),才可以执行如下的命令

bash 复制代码
kubectl apply -f grafana.yaml --namespace=my-grafana

4) 查看结果

bash 复制代码
kubectl get pv,pvc,deployment -n my-grafana

5) 访问grafana

bash 复制代码
kubectl get svc -n my-grafana

grafana的service采用的是NodePort方式暴露服务,因此可以通过映射的随机端口31483进行访问:

这里k8s部署grafana就算成功了

相关推荐
陈桴浮海2 小时前
Kustomize实战:从0到1实现K8s多环境配置管理与资源部署
云原生·容器·kubernetes
张小凡vip2 小时前
Kubernetes--k8s中部署redis数据库服务
redis·kubernetes
Hello.Reader3 小时前
Flink Kubernetes HA(高可用)实战原理、前置条件、配置项与数据保留机制
贪心算法·flink·kubernetes
ShiLiu_mtx4 小时前
k8s - 7
云原生·容器·kubernetes
MonkeyKing_sunyuhua7 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
醇氧8 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
匀泪12 小时前
云原生(LVS NAT模式集群实验)
服务器·云原生·lvs
70asunflower12 小时前
用Docker创建不同的容器类型
运维·docker·容器
CodeGolang12 小时前
Docker容器化部署Zabbix监控系统完整指南
docker·容器·zabbix
DolitD13 小时前
云流技术深度剖析:国内云渲染主流技术与开源和海外厂商技术实测对比
功能测试·云原生·开源·云计算·实时云渲染