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就算成功了

相关推荐
小安运维日记41 分钟前
CKA认证 | Day7 K8s存储
运维·云原生·容器·kubernetes·云计算
AR_xsy1 小时前
K8S--“ Failed to create pod sandbox: nameserver list is empty“
云原生·容器·kubernetes
码农炎可1 小时前
K8S 黑魔法之如何从 Pod 拿到节点的命令行
安全·云原生·容器·kubernetes
Just_Do_IT_OK1 小时前
Docker--MySql
mysql·docker·容器
裁二尺秋风1 小时前
k8s dashboard可视化操作界面的安装
云原生·容器·kubernetes
18号房客2 小时前
云原生后端开发(一)
后端·云原生
正儿八经的地球人3 小时前
Docker【初识Docker】
docker·容器·eureka
Just_Do_IT_OK4 小时前
Docker--Bitnami/mongodb
docker·容器
Just_Do_IT_OK5 小时前
Docker--Bitnami/kafka
docker·容器
Bright16685 小时前
Docker部署skywalking
docker·容器·skywalking