使用 KubeSphere 创建 Redis 保密字典的完整指南

在现代应用开发中,我们需要安全地存储和管理敏感信息,例如数据库密码、API 密钥等。KubeSphere 提供了便捷的工具来管理这些保密信息,使用 Redis 作为我们的存储选项。本文将详细介绍如何在 KubeSphere 中实现 Redis 保密字典,适合刚入行的小白程序员。

整体流程

以下是实现 KubeSphere Redis 保密字典的简单步骤:

步骤 描述
1 安装 KubeSphere
2 创建 Redis 部署
3 使用 KubeSphere 创建保密字典
4 将保密字典与 Redis 结合
5 验证和测试

详细步骤

第一步:安装 KubeSphere

在开始之前,请确保您已经安装了 KubeSphere。您可以参考 [KubeSphere 官方文档](

第二步:创建 Redis 部署

我们使用 Kubernetes YAML 文件来创建 Redis 的部署和服务。

# redis-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  labels:
    app: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
        - name: redis
          image: redis:latest
          ports:
            - containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  selector:
    app: redis
  ports:
    - protocol: TCP
      port: 6379
      targetPort: 6379
  type: ClusterIP

解释:

  • Deployment 用于管理 Redis 的副本,并确保至少有一个 Redis 实例始终运行。
  • Service 用于在集群内部为 Redis 提供访问。

运行以下命令创建 Redis 部署和服务:

kubectl apply -f redis-deployment.yaml
# 运行这条命令来应用上面定义的 YAML 文件

第三步:使用 KubeSphere 创建保密字典

在 KubeSphere 中,您可以通过 UI 创建保密字典。登录 KubeSphere 控制台,按照以下步骤操作:

  1. 选择“工作负载” > “保密字典” > “创建”。
  2. 输入名称和类型(例如:string)。
  3. 在密文中填写您的敏感信息,如数据库密码。
  4. 点击“保存”。

第四步:将保密字典与 Redis 结合

我们需要通过环境变量或配置文件将保密字典注入到 Redis 实例中。下面是示例 YAML 文件,展示了如何将密文传递给您的应用。

# redis-deployment-with-secret.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  labels:
    app: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
        - name: redis
          image: redis:latest
          ports:
            - containerPort: 6379
          env:
            - name: REDIS_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: YOUR_SECRET_NAME
                  key: YOUR_SECRET_KEY

解释:

  • env 部分指定从保密字典中提取密文作为环境变量 REDIS_PASSWORD

运行以下命令应用更改:

kubectl apply -f redis-deployment-with-secret.yaml
# 运行这条命令来将保密字典应用到 Redis 部署中

第五步:验证和测试

您可以通过访问 Redis 实例来验证保密字典是否生效。使用以下命令连接 Redis:

kubectl exec -it deployment/redis -- redis-cli -a REDIS_PASSWORD
# 通过提供保密字典中的密码连接到 Redis

通过以下命令进行简单的测试:

127.0.0.1:6379> PING
PONG

确保返回的结果是 PONG,这表明 Redis 工作正常。

类图示例

classDiagram
    class Redis {
        +void connect()
        +void set(key: String, value: String)
        +String get(key: String)
    }
    class Secret {
        +String name
        +String key
    }
    class Application {
        +void main()
    }
    Redis --|> Application : utilizes
    Secret --|> Application : injects

备注: 类图展示了 Redis、Secret 和应用程序之间的关系。应用利用 Redis,并从 Secret 中注入密文。

关系图示例

erDiagram
    SECRETS {
        string name PK
        string key
    }

    REDIS {
        string id PK
        string value
    }

    SECRETS ||--o{ REDIS : contains

备注: 关系图展示了 Secrets 和 Redis 数据之间的联系。一个保密字典可以包含多条 Redis 数据。

结尾

通过本文的指引,您已经成功在 KubeSphere 中实现了 Redis 保密字典的创建与管理。这个流程在日常开发中极为重要,它确保了您的敏感信息得到了妥善保护。为了进一步学习,您可以研究 KubeSphere 的其他功能,如监控和日志管理,以提升您的开发技能。祝您在云原生领域的探索顺利!