使用kubectl-sae工具管理保密字典Secret

SAE的保密字典对应于Kubernetes的Secret资源类型。本文介绍如何使用kubectl-sae工具管理Secret,并提供相关的K8s YAML配置文件示例。

前提条件

已安装kubectl-sae工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置kubectl-sae工具

管理Secret

kubectl-sae工具支持创建、查看、更新、删除Secret。

创建Secret

  1. 编写配置文件secret.yaml。配置文件的示例如下,各配置项的详细信息请参考K8s YAML配置项说明

    apiVersion: v1
    data:
      .dockerconfigjson: xxxxxxxx
    kind: Secret
    metadata:
      name: test
      namespace: default
    type: kubernetes.io/dockerconfigjson
  2. secret.yaml文件所在路径执行以下命令,实现为应用创建Secret。

    kubectl-sae apply -f secret.yaml

查看Secret列表

kubectl-sae get secret ${secret-name} -n ${namespace}
# ${secret-name}为Secret的名称,如果不指定Secret的名称,则获取范围内所有Secret。
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间。

输出结果的字段说明如下:

字段

说明

NAMESPACE

Secret所在的命名空间。

NAME

Secret名称。

TYPE

Secret类型。

AGE

Secret的存在时长。

查看Secret详情

kubectl-sae工具支持使用getdescribe命令查看Secret详情。返回结果中包含Secret的配置项,详情请参考K8s YAML配置项说明

通过get命令查看Secret配置信息

kubectl-sae get secret ${secret-name} -o {yaml | json} -n ${namespace}
# ${secret-name}为Secret名称
# -o参数指定返回结果的格式
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

通过describe命令查看Secret详情

kubectl-sae describe secret ${secret-name} -n ${namespace}
# ${secret-name}为Secret名称
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

更新Secret

kubectl-sae工具支持使用editapply命令更新Secret。

通过edit命令在线编辑Secret配置信息

  1. 执行以下命令,将会以YAML文件的形式打开指定Secret的配置信息。

    kubectl-sae edit secret ${secret-name} -n ${namespace}
    # ${secret-name}为Secret名称
    # ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间
  2. 在打开的YAML文件中按需修改配置信息,保存并关闭文件,等待配置信息变更完成。

通过apply命令实现按照YAML配置文件更新Secret

修改已有的Secret的配置文件secret.yaml。在配置文件所在路径执行以下命令,实现Secret配置信息的变更。

kubectl-sae apply -f secret.yaml

删除Secret

kubectl-sae delete secret ${secret-name} -n ${namespace}
# ${secret-name}为Secret名称
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

K8s YAML配置项说明

SAE的保密字典对应于Kubernetes的Secret资源类型。相关K8s YAML配置项说明详见下表。

配置项

说明

metadata.name

Secret名称。

更新时不支持此配置项。

metadata.creationTimestamp

Secret创建时间。

更新时不支持此配置项。

metadata.namespace

Secret所在的命名空间。

更新时不支持此配置项。

metadata.uid

Secret ID。

type

Secret类型。

此配置项为固定值kubernetes.io/dockerconfigjson。

创建时必须指定此配置项。
更新时不支持此配置项。

data

Secret键值对。

使用固定格式如下:

data:
  .dockerconfigjson: xxxxxx # 需要 base64 编码
创建时必须指定此配置项。