其他分享
首页 > 其他分享> > 用户名的环境变量是什么?

用户名的环境变量是什么?

作者:互联网

在使用 Redis 6.0 及更高版本时,可以使用 --requirepass 命令行选项设置密码,并使用 ACL (Access Control List) 来设置用户名。Redis 通常不会通过环境变量设置用户名,而是直接通过 Redis 命令或配置文件管理。

如果您希望在 Kubernetes 中通过环境变量设置 Redis 的用户名,建议您在容器启动时通过 redis.conf 文件配置 ACL(即访问控制列表)。

Redis 用户名和密码的配置

对于 Redis 的 ACL,您可以使用命令来设置用户和密码。以下是您在 Kubernetes 中运行 Redis 时设置用户名和密码的示例方式:

  1. 在 Redis 中定义 ACL 用户和密码: 您可以通过 Redis 配置文件,或者在启动 Redis 时通过命令行进行设置。

  2. 基于环境变量的示例配置

以下是如何通过 Kubernetes 的 ConfigMap 来传递用户名和密码,并在 Redis 启动时引用它们的示例。

示例配置

以下是一个完整的示例,创建一个 ConfigMap 和一个 StatefulSet 将 Redis 的用户名和密码设置为环境变量。

apiVersion: v1
kind: ConfigMap
metadata:
  name: redis-config
data:
  redis.conf: |
    # Redis configuration file
    requirepass ${REDIS_PASSWORD}
    user default on >${REDIS_PASSWORD} ~* +@all
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: "redis"
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis:alpine
        ports:
        - containerPort: 6379
        env:
        - name: REDIS_PASSWORD
          valueFrom:
            secretKeyRef:
              name: redis-secret
              key: redis-password
        command:
        - "sh"
        - "-c"
        - |
          set -ex
          # Start redis with the configuration file
          exec redis-server /usr/local/etc/redis/redis.conf
        volumeMounts:
        - name: redis-config
          mountPath: /usr/local/etc/redis
      volumes:
      - name: redis-config
        configMap:
          name: redis-config
---
apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    app: redis

YAML

说明

连接到 Redis

连接到 Redis 实例时,您可以使用 Redis CLI 通过指定用户名和密码进行连接:

redis-cli -h redis -p 6379 -a your_password --user default

Shell

标签:
来源: