k8s部署springboot项目实战

k8s 部署redis

       

apiVersion: apps/v1
kind: StatefulSet
metadata:

  name: redis
  labels:
    app: redis
  annotations:
    security.alpha.kubernetes.io/unsafe-sysctls: net.core.somaxconn=65535
spec:
  #securityContext:
    #privileged: true
  serviceName: redis
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
        #net:
          #core:
            #somaxconn=511:
    spec:
      containers:
        - name: redis
          image: redis:latest
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 450m
              memory: 4000Mi
            requests:
              cpu: 400m
              memory: 4000Mi
          env:
            - name: TZ
              value: Asia/Shanghai
          command: ["redis-server","/usr/local/etc/redis/redis.conf","--appendonly yes"]
          ports:
            - containerPort: 6379
          volumeMounts:
            - name: vol-conf
              mountPath: /usr/local/etc/redis
            - name: vol-data
              mountPath: /data
      volumes:
        - name: vol-conf
          configMap:
            name: redis-config
        - name: vol-data
          persistentVolumeClaim:
            claimName: redis-pvc

   command中启动命令 redis-server /user/local/etc/redis/redis.conf 其实是读取了name 为redis-config的configMap中的值。其中 volumeMounts.vol-data为挂载容器内 /data到 redis-pvc中。

persistentVolumeClaim中的claimName引用了 redis-pvc。

关于如何创建 pv,pvc,请参考以下操作

k8s创建pv,pvc

PV是对底层网络共享存储的抽象,将共享存储定义为一种“资源。PVC则是用户对存储资源的一个“申请”。就像Pod“消费”Node的资源一样,PVC能够“消费”PV资源。PVC可以申请特定的存储空间和访问模式。

 pv底层依赖于NFS (network file system),首先来安装一下NFS。

  1. 安装命令 
    
    yum -y install nfs-utils rpcbind
    
    在NFS服务端上创建共享目录/data并设置权限
    mkdir -p /data
    chmod 666 /data
  2. 编辑export文件

        vim /etc/exports

    添加配置 /data 服务器ip/24(rw,no_root_squash,no_all_squash,sync)

         exportfs -r

      3.启动NFS

        service rpcbind start

        service nfs start

k8s中声明一个PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  storageClassName: "nfs"
  capacity:
    storage: 10G
  accessModes:
  - ReadWriteMany
  nfs:
     path: /data
     server: 服务器ip

 k8s中声明一个PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: redis-pvc
spec:
  storageClassName: "nfs"
  accessModes:
  # 需要使用和 PV 一致的访问模式
  - ReadWriteMany
  # 按需分配资源
  resources:
     requests:
       storage: 1G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值