在使用 Redis 6.0 及更高版本时,可以使用 --requirepass
命令行选项设置密码,并使用 ACL (Access Control List) 来设置用户名。Redis 通常不会通过环境变量设置用户名,而是直接通过 Redis 命令或配置文件管理。
如果您希望在 Kubernetes 中通过环境变量设置 Redis 的用户名,建议您在容器启动时通过 redis.conf
文件配置 ACL(即访问控制列表)。
对于 Redis 的 ACL,您可以使用命令来设置用户和密码。以下是您在 Kubernetes 中运行 Redis 时设置用户名和密码的示例方式:
在 Redis 中定义 ACL 用户和密码: 您可以通过 Redis 配置文件,或者在启动 Redis 时通过命令行进行设置。
基于环境变量的示例配置:
以下是如何通过 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
ConfigMap
将 Redis 配置文件中的 ACL 设置,使用 ${REDIS_PASSWORD}
占位符。REDIS_PASSWORD
,然后在 Redis 启动时用该环境变量设置密码和用户。user default on >${REDIS_PASSWORD} ~* +@all
允许默认用户访问所有命令并使用指定的密码。连接到 Redis 实例时,您可以使用 Redis CLI 通过指定用户名和密码进行连接:
redis-cli -h redis -p 6379 -a your_password --user default
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。