首页 > 其他分享 >K8S pod挂载存储卷

K8S pod挂载存储卷

时间:2023-08-23 16:47:32浏览次数:37  
标签:name app grafana 3000 挂载 pod K8S spec metadata

1、hostpath方式

# hostpath挂载方式
---
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:8.4.0
          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: host-path
      volumes:
        - name: host-path
          hostPath:
            # directory location on host
            path: /opt/test-hostpath
            # this field is optional
            type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
spec:
  ports:
    - port: 3000
      protocol: TCP
      targetPort: http-grafana
  selector:
    app: grafana
  sessionAffinity: None
  type: NodePort

2、PV、PVC挂载方式

# 创建pv
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: grafana-pv
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /opt/grafana
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node2
# 创建pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi 
  storageClassName: local-storage
  volumeName: grafana-pv
  volumeMode: Filesystem
---
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: NodePort

kubectl get pv,pvc -o wide     # 查看pv,pvc
kubectl get svc -o wide    # 查看service

参考链接:
       https://www.zhihu.com/tardis/bd/art/447760895     # k8s nfs网络共享存储
       https://www.cnblogs.com/liugp/p/16622532.html     # k8s本地存储卷介绍与简单使用(emptyDir,hostPath,local volume)
       https://blog.csdn.net/weixin_45310323/article/details/131154956     # k8s持久化存储PV、PVC详解
       https://blog.csdn.net/weixin_45310323/article/details/131154887     # k8s存储方案(emptyDir,hostPath,nfs网络共享存储)
       https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/

标签:name,app,grafana,3000,挂载,pod,K8S,spec,metadata
From: https://www.cnblogs.com/xwupiaomiao/p/17652072.html

相关文章

  • 如何在k8s中部署nfs-client-provisioner实现nfs共享存储的动态PV创建?
    0、背景说明 正常的情况,如果使用nfs的网络共享存储,需要手动的创建pv,然后创建pvc和pv进行绑定。 最后在应用程序的pod中来挂载使用这个pvc,达到挂载外部共享存储的目的。 那么,要实现动态的PV的创建,该怎么做呢? 在今天的内容里面,介绍一个nfs-client-provisoner工具,通过它......
  • k8s 相关
    转载至:https://blog.51cto.com/u_15287666/5805969查询所有命名空间下image运行起来的资源kubectlgetall-owide-A缺点:这种方法kubectlgetall其实查询出来不是全部资源,仅仅是常用资源,仅仅是service-deployment/statefulset/daemonset/job/cronjob-replicaset-p......
  • k8s挂载示例
    apiVersion:apps/v1kind:Deploymentmetadata:name:tongwebspec:selector:matchLabels:app:tongwebreplicas:1template:metadata:labels:app:tongwebspec:containers:-name:tongweb......
  • k8s发布应用
    前言首先以SpringBoot应用为例介绍一下k8s的发布步骤。1.从代码仓库下载代码,比如GitLab;2.接着是进行打包,比如使用Maven;3.编写Dockerfile文件,把步骤2产生的包制作成镜像;4.上传步骤3的镜像到远程仓库,比如Harhor;5.编写Deployment文件;6.提交Deployment文件到k8s集群;从以上步骤......
  • Centos使用nginx实现挂载本地yum源
    前言:生产环境中由于一些安全问题,无法使用外网,只能在内网运行,无法访问外部yum源,这时候对于一些环境的安装及其不方便,故使用内部挂载yum源方式解决。1、环境操作系统版本2、关闭selinux和防火墙#关闭selinuxsed-ri's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/co......
  • k8s中网络策略的本质是什么?通过什么控制pod间的访问策略?
    k8s中集群网络策略,需要集群网络插件,才能够真正的实现,对pod间的访问流量进行控制和管理。 以calico网络插件为例。 本质:用户在k8s集群中设置了pod的网络策略之后,calico-kube-controllers会通知各个节点上的calico-node服务,在宿主机上设置对应的iptables规则,完成pod间网络......
  • 使用 KubeBlocks 为 K8s 提供稳如老狗的数据库服务
    原文链接:https://forum.laf.run/d/994大家好!今天这篇文章主要向大家介绍Sealos的数据库服务。在Sealos上数据库后端服务由KubeBlocks提供,为用户的数据库应用保驾护航。无论你是在公有云还是本地环境中使用,Sealos都能为你管理关系数据库、NoSQL、向量数据库和流数据库等......
  • ios开发之--Cocoapods更新指定的库
    最近接手了一个swift的老项目,问题还不少,把bug修复完成功编译后,还没来得及高兴,发现一运行都崩溃,经排查是三方库太旧的原因,但是有些老版本的库又不能全部更新,所以只能更新指定的库,命令如下:1、更新指定的第三方库podupdate库名2、只安装新添加的库,已更新的库忽略podinstall--verbo......
  • 关于Azure-存储账户-SMB-CIFS文件共享-在Linux系统中的挂载
    笔者在自己Azure平台创建了一个【标准】性能,即StorageV2类型的存储账户、然后在其下创建了一个文件共享CIFS注意:标准存储账户中的【文件共享】,只能创建基于SMB协议的文件共享如果要创建NFS文件共享,只能在创建存储账户时,【性能】处选择,高级,文件共享,才能同时支持CIFS和NFS 这......
  • K8S系统监控:使用Metrics Server和Prometheus
    Kubernetes也提供了类似的linuxtop的命令,就是kubectltop,不过默认情况下这个命令不会生效,必须要安装一个插件MetricsServer才可以。MetricsServer是一个专门用来收集Kubernetes核心资源指标(metrics)的工具,它定时从所有节点的kubelet里采集信息,但是对集群的整体性能影响......