K8S搭建redis集群(2)使用redis-trib

1、搭建自动创建pv的storageClass
可参考之前的文章,K8S 自动按需自动创建nfs存储卷(pv)
查看创建的storageClass

[root@master imooc-redis-test]# kubectl get storageclass
NAME          PROVISIONER      AGE
nfs-storage   fuseim.pri/ifs   4d16h

2、查看configmap,命名为redis-conf

#1.创建redis.conf文件
[root@master imooc-redis-test]# cat redis.conf
appendonly yes
cluster-enabled yes
cluster-config-file /var/lib/redis/nodes.conf
cluster-node-timeout 5000
dir /var/lib/redis
port 6379

#2.根据redis.conf创建configmap
[root@master imooc-redis-test]#kubectl create configmap redis-conf --from-file=redis.conf

#3.查看redis-conf这个configmap中的内容
[root@master imooc-redis-test]# kubectl describe cm redis-conf
Name:         redis-conf
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
redis.conf:
----
appendonly yes
cluster-enabled yes
cluster-config-file /var/lib/redis/nodes.conf
cluster-node-timeout 5000
dir /var/lib/redis
port 6379

Events:  <none>

3、创建无头服务

#1.新建headless-service.yaml,内容如下
[root@master imooc-redis-test]# cat headless-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: redis-service
  labels:
    app: redis
spec:
  ports:
  - name: redis-port
    port: 6379
  clusterIP: None
  selector:
    app: redis
    appCluster: redis-cluster

#2.应用
[root@master imooc-redis-test]# kubectl apply -f headless-service.yaml

#3.查看服务
[root@master imooc-redis-test]# kubectl get svc redis-service
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
redis-service   ClusterIP   None         <none>        6379/TCP   58m

4、创建statefulSet

#1.创建redis-statefulSet.yaml文件
[root@master imooc-redis-test]# vim redis-statefulSet.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis-app
spec:
  serviceName: redis-service
  replicas: 6
  selector:
    matchLabels:
      app: redis
      appCluster: redis-cluster
  template:
    metadata:
      labels:
        app: redis
        appCluster: redis-cluster
    spec:
      #terminationGracePeriodSeconds: 20
      #affinity:
      #  podAntiAffinity:
      #    preferredDuringSchedulingIgnoredDuringExecution:
      #    - weight: 100
      #      podAffinityTerm:
      #        labelSelector:
      #          matchExpressions:
      #          - key: app
      #            operator: In
      #            values:
      #            - redis
      #        topologyKey: kubernetes.io/hostname
      containers:
      - name: redis
        image: redis:latest
        imagePullPolicy: IfNotPresent
        command:
          - "redis-server"
        args:
          - "/etc/redis/redis.conf"
          - "--protected-mode"
          - "no"
        resources:
          requests:
            cpu: "100m"
            memory: "100Mi"
        ports:
        - name: redis
          containerPort: 6379
          protocol: "TCP"
        - name: cluster
          containerPort: 16379
          protocol: "TCP"
        volumeMounts:
          - name: redis-conf
            mountPath: /etc/redis
          - name: redis-cluster-data
            mountPath: /var/lib/redis
      volumes:
      - name: redis-conf
        configMap:
          name: redis-conf
          items:
            - key: "redis.conf"
              path: 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值