k8s部署grafana

先决条件

这里部署过程的前提是已经部署好storageclass,所以pv会根据pvc自动创建.

详情参考:k8s-StoargClass的使用-基于nfs_a volume that contains injected data from multiple-CSDN博客

直接开始:

部署pvc
Go 复制代码
[root@module /zpf/grafana]$cat pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim  #指定类型
metadata:
  name: grafana-pvc  #指定pvc的名称
spec:
  storageClassName: "managed-nfs-storage"  #这里指定的名称就是上面创建的sc的名称,否则是无法创建成功的
  accessModes:
  - ReadWriteMany   #读写权限
  resources:
    requests:
      storage: 20Gi  #分配大小
部署deploy:

注意这里的容器镜像是我自己仓库里面的镜像,

imagePullSecrets 也是我自己创建的,根据个人的情况自行更改即可.

Go 复制代码
[root@module /zpf/grafana]$cat deploy-grafana.yml
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: grafana
  name: grafana
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      imagePullSecrets:
      - name: aliyun-docker-images-registry
      securityContext:
        runAsUser: 0
      containers:
        - name: grafana
          image: registry.cn-beijing.aliyuncs.com/scorpio/grafana-cn:v9.4.0
          imagePullPolicy: IfNotPresent
          env:
            - name: GF_AUTH_BASIC_ENABLED
              value: "true"
            - name: GF_AUTH_ANONYMOUS_ENABLED
              value: "false"
          readinessProbe:
            httpGet:
              path: /login
              port: 3000
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-data-pvc
          ports:
            - containerPort: 3000
              protocol: TCP
      volumes:
        - name: grafana-data-pvc
          persistentVolumeClaim:
            claimName: grafana-pvc
创建svc:

因为要在集群外访问服务,所以这里就直接使用了Nodeport的方式对外暴漏了.

Go 复制代码
[root@module /zpf/grafana]$cat svc-grafana.yml
kind: Service
apiVersion: v1
metadata:
  labels:
    app: grafana
  name: grafana-service
spec:
  ports:
    - port: 3000
      targetPort: 3000
      nodePort: 30030
  selector:
    app: grafana
  type: NodePort
验证结果:

部署成功

接入数据源:
验证数据源可用性

完成

相关推荐
sunshine_sean1 小时前
docker 部署kafka命令
docker·容器·kafka
hwj运维之路2 小时前
基于k8s的Jenkins CI/CD平台部署实践(二):流水线构建与自动部署全流程
ci/cd·kubernetes·jenkins
Super_man541882 小时前
k8s之ingress解释以及k8s创建业务的流程定义
云原生·容器·kubernetes
Python测试之道4 小时前
K8s ConfigMap实战:像设置手机一样管理配置!
容器·智能手机·kubernetes
开心码农1号5 小时前
如何理解k8s中的controller
docker·容器·kubernetes
檀越剑指大厂5 小时前
【Docker系列】镜像大小排序
运维·docker·容器
@t.t.6 小时前
Docker编排工具---Compose的概述及使用
运维·docker·容器
CoderJia程序员甲7 小时前
AI驱动的Kubernetes管理:kubectl-ai 如何简化你的云原生运维
运维·人工智能·云原生·kubernetes·llm
Andya_net8 小时前
k8s | Kubernetes 服务暴露:NodePort、Ingress 与 YAML 配置详解
云原生·容器·kubernetes
moxiaoran57538 小时前
Kubernetes(k8s)学习笔记(八)--KubeSphere定制化安装
笔记·学习·kubernetes