全部产品
Search
文档中心

挂载Secret

更新时间: 2021-11-04

Secret一般用于存储和管理一些敏感数据,例如密码、密钥等敏感信息,它将Pod想要访问的加密数据存放在etcd中,您可以通过在Pod内的容器里挂载Volume的方式来访问Secret里保存的数据。本文介绍如何为ECI实例挂载Secret。

前提条件

K8s集群中已正确部署Virtual kubelet(VK)。

说明

阿里云ASK集群已默认集成VK,其它集群需要您自行部署VK。更多信息,请参见对接概述

配置示例

您可以像使用原生K8s一样为ECI实例挂载Secret。配置示例如下:

  1. 创建Secret。

    kubectl create secret generic demo --from-literal=raw=test-secret

    创建成功后,执行以下命令查看Secret的配置信息:

    kubectl get secret demo -o yaml

    预期返回结果如下

    apiVersion: v1
    data:
      raw: dGVzdC1zZWNyZXQ=
    kind: Secret
    metadata:
      creationTimestamp: "2020-01-20T13:14:22Z"
      name: demo
      namespace: default
      resourceVersion: "15357979"
      selfLink: /api/v1/namespaces/default/secrets/demo
      uid: c645990b-3b86-11ea-aa30-3e3af724****
    type: Opaque
  2. 准备挂载Secret的YAML配置文件。

    vim test-secret.yaml

    test-secret.yaml的内容示例如下:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-secret
      labels: 
        alibabacloud.com/eci: "true"   
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        volumeMounts:
        - name: secret-vol
          mountPath: "/cache-test"
          readOnly: true
      volumes:
      - name: secret-vol
        secret:
          secretName: demo
          items:
          - key: raw
            path: secrets/raw
  3. 部署Pod。

    kubectl create -f test-secret.yaml
  4. 查看挂载结果。

    使用ls命令查看Pod内的文件目录,可以看到已经将Secret挂载到容器内。

    挂载Secret