• linux运维、架构之路-k8s部署redis


    一、创建命名空间

    apiVersion: v1
    kind: Namespace
    metadata:
      name: dev

    二、创建redis配置ConfigMap

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: dev
      name: redis-conf
    data:
      redis.conf: |
            bind 0.0.0.0
            port 6379
            #requirepass 111111 #设置认证密码
            appendonly yes
            cluster-config-file nodes-6379.conf
            pidfile /redis/log/redis-6379.pid
            cluster-config-file /redis/conf/redis.conf
            dir /redis/data/
            logfile /redis/log/redis-6379.log
            cluster-node-timeout 5000
            protected-mode no

    三、创建有状态应用StatefulSet,并把数据挂载到宿主机上

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: redis
      namespace: dev
    spec:
      replicas: 1
      serviceName: redis
      selector:
        matchLabels:
          name: redis
      template:
        metadata:
          labels:
            name: redis
        spec:
          initContainers:
          - name: init-redis
            image: hub.ityy.ultrapower.com.cn:5050/middleware/busybox:1.1.1 #初始化容器镜像
            command: ['sh', '-c', 'mkdir -p /redis/log/;mkdir -p /redis/conf/;mkdir -p /redis/data/']
            volumeMounts:
            - name: data
              mountPath: /redis/
          containers:
          - name: redis
            image: hub.ityy.ultrapower.com.cn:5050/middleware/redis:4.0.6
            imagePullPolicy: IfNotPresent
            command:
            - sh
            - -c
            - "exec redis-server /redis/conf/redis.conf"
            ports:
            - containerPort: 6379
              name: redis
              protocol: TCP
            volumeMounts:
            - name: redis-config
              mountPath: /redis/conf/
            - name: data
              mountPath: /redis/
          volumes:
          - name: redis-config
            configMap:
              name: redis-conf
          - name: data
            hostPath:
              path: /app/ #挂载宿主机目录
          nodeSelector:
            domain: dev #选择要部署的固定节点

    四、创建Service对外暴露应用

    kind: Service
    apiVersion: v1
    metadata:
      namespace: dev
      labels:
        name: redis
      name: redis
    spec:
      type: NodePort
      ports:
      - name: redis
        port: 6379
        targetPort: 6379
        nodePort: 31379
      selector:
        name: redis
  • 相关阅读:
    MySql创建库 Challenge
    未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值的解决办法.
    小总结:用反射机制创建的分配数据分配器
    工厂模式的反思
    单机安装“完整”SharePoint 2010
    作业调度框架 Quartz.NET 2.0 StepByStep(2)
    UI线程同步
    每日见闻(一)
    作业调度框架 Quartz.NET 2.0 StepByStep
    基础算法(ACwing)
  • 原文地址:https://www.cnblogs.com/yanxinjiang/p/13974715.html
Copyright © 2020-2023  润新知