zoukankan      html  css  js  c++  java
  • k8s创建redis集群

    1.首先k8s要有StorangeClass,这里为data

     新建redis-cluster.yaml文件

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: redis-cluster
    data:
      update-node.sh: |
        #!/bin/sh
        REDIS_NODES="/data/nodes.conf"
        sed -i -e "/myself/ s/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/${POD_IP}/" ${REDIS_NODES}
        exec "$@"
      redis.conf: |+
        cluster-enabled yes
        cluster-require-full-coverage no
        cluster-node-timeout 15000
        cluster-config-file /data/nodes.conf
        cluster-migration-barrier 1
        appendonly yes
        protected-mode no
    ---
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: redis-cluster
    spec:
      serviceName: redis-cluster
      replicas: 6
      selector:
        matchLabels:
          app: redis-cluster
      template:
        metadata:
          labels:
            app: redis-cluster
        spec:
          containers:
          - name: redis
            image: redis:6.0.6
            ports:
            - containerPort: 6379
              name: client
            - containerPort: 16379
              name: gossip
            command: ["/conf/update-node.sh""redis-server""/conf/redis.conf"]
            env:
            - name: POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            volumeMounts:
            - name: conf
              mountPath: /conf
              readOnly: false
            - name: data
              mountPath: /data
              readOnly: false
          volumes:
          - name: conf
            configMap:
              name: redis-cluster
              defaultMode: 0755
      volumeClaimTemplates:
      - metadata:
          name: data
        spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 5Gi
          storageClassName: data #改成NFS的名称

     执行命令: kubectl apply -f redis-cluster.yaml

    执行命令查看: kubectl get all

     3主3副的pod已经启动成功

    执行初始化集群命令:

    kubectl exec -it redis-cluster-0  -- redis-cli --cluster create --cluster-replicas 1 $(kubectl get pods  -l  app=redis-cluster -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
    输入:yes

     这个时候集群创建完成

  • 相关阅读:
    [华为oj]放苹果
    [华为oj]iNOC产品部-杨辉三角的变形
    值传递和引用传递
    Struts2+Jquery+Json集成
    使用堆栈结构进行字符串表达式("7*2-5*3-3+6/3")的计算
    使用环形链表解决约瑟夫(丢手帕)问题
    tomcat配置数据源
    ORA-01652:无法通过128(在表空间TEMP中)扩展temp段
    (转)Java 代码优化过程的实例介绍
    (转)走进JVM,浅水也能捉鱼
  • 原文地址:https://www.cnblogs.com/lidezhen/p/13423903.html
Copyright © 2011-2022 走看看