当前位置:首页 > 行业动态 > 正文

如何进行Kubernetes中Secret和私有仓库认证

Kubernetes中Secret的概述

在Kubernetes中,Secret是一种用于存储敏感信息的资源对象,例如密码、密钥、证书等,与ConfigMap不同,Secret以base64编码的形式存储数据,因此更适合存储敏感信息,Secret可以在Pod之间共享,也可以通过环境变量或卷挂载的方式在容器内使用,本文将介绍如何在Kubernetes中创建和管理Secret。

创建Secret

1、创建一个名为my-secret.yaml的文件,内容如下:

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  username: MTIzNDU2
  password: cGFzc3dvcmQ=

2、使用kubectl命令创建Secret:

kubectl create -f my-secret.yaml

3、查看已创建的Secret:

kubectl get secrets

使用Secret中的数据

1、在Pod的配置文件中引用Secret:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  name: my-container
    image: my-image
    envFrom:
    secretRef:
        name: my-secret
    name: MY_ENV_VARIABLE
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: username

2、在容器内使用环境变量访问Secret中的数据:

import os
username = os.environ['MY_ENV_VARIABLE']
password = os.environ['MY_OTHER_ENV_VARIABLE']

私有仓库认证在Kubernetes中的应用

1、在私有仓库中创建一个名为.dockerconfigjson的文件,内容如下(以Docker Hub为例):

{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "dXNlcm5hbWU6cGFzc3dvcmQ=", // base64编码后的"dXNlcm5hbWU6cGFzc3dvcmQ=="字符串即为密码(这里假设已经存在)
      "email": "your@email.com", // Docker Hub用户邮箱地址(可选)
      "username": "your_username" // Docker Hub用户名(可选)
0