kustomize (八)生成secret

简介: kustomize (八)生成secret

文章目录

1. Secret 是什么?

Kubernetes 的 ConfigMaps 和 Secrets 都是key:value map,但 Secrets 的内容更为敏感,比如:密码或者 ssh 秘钥。


Kubernetes 开发者以各种方式工作,Secrets 保存的信息相比 ConfigMaps,Deployments 等的配置信息需要更谨慎的隐藏。

2. 来自本地文件的 Secret

kustomize 可以通过三种不同的方式生成来自本地文件的 Secret 。


从 env 文件中获取(NAME = VALUE,每行一个)

使用文件内容来生成一个 secret

从 kustomization.yaml 文件获取 secret

这里有一个示例结合所有的三种方式:


创建一个包含一些短密码的 env 文件:

cat <<EOF>foo.env
ROUTER_PASSWORD=admin
DB_PASSWORD=iloveyou
EOF

创建一个长密码的文本文件:

cat <<EOF>longsecret.txt
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
EOF

创建一个kustomization.yaml 文件, 其中包含引用上面文件的 secretGenerator, 并且另外定义一些文字 KV 对:

cat <<EOF>kustomization.yaml
secretGenerator:
- name: mysecrets
  envs:
  - foo.env
  files:
  - longsecret.txt
  literals:
  - FRUIT=apple
  - VEGETABLE=carrot
EOF

生成 Secret :

$ kustomize build .
apiVersion: v1
data:
  DB_PASSWORD: aWxvdmV5b3U=
  FRUIT: YXBwbGU=
  ROUTER_PASSWORD: YWRtaW4=
  VEGETABLE: Y2Fycm90
  longsecret.txt: TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsCmNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwKc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQKdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCg==
kind: Secret
metadata:
  name: mysecrets-467mf7hg78
type: Opaque

资源名称的前缀为 mysecrets(在 kustomization.yaml 中指定),后跟其内容的哈希值。


使用 base64 解码器确认这些值的原始版本。


这三种方法共同的问题是创建 Secret 所使用的敏感数据必须保存磁盘上。


这会增加额外的安全问题:对本地存储的敏感文件的查看、安装和删除权限的控制等。


参考连接:

https://github.com/kubernetes-sigs/kustomize/blob/master/examples/zh/secretGeneratorPlugin.md


扩展阅读:


kustomize (一) 管理yaml部署入门hello world

kustomize (二) ConfigMap的生成和滚动更新

kustomize (三) devops和开发配合管理配置数据behavior: merge、namePrefix、nameSuffix

kustomize (四) generatorOptions详解

kustomize (五) 使用vars将 k8s runtime数据注入容器

kustomize(六)命令行常用编排

kustomize (七)patches、patchesJson6902、patchesStrategicMerge详解

kustomize (八)生成secret

kustomize(九)使用终章


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
存储 Kubernetes API
Kubernetes 的 secret 并不是真正的 secret(上)
Kubernetes 的 secret 并不是真正的 secret
198 0
|
5月前
|
存储 Kubernetes 数据安全/隐私保护
k8s学习笔记之ConfigMap和Secret
k8s学习笔记之ConfigMap和Secret
|
5月前
|
Kubernetes 数据安全/隐私保护 容器
Kubernetes(K8S) 配置管理 Secret 介绍
Kubernetes(K8S) 配置管理 Secret 介绍
57 1
|
5月前
|
存储 Kubernetes 安全
在k8S中,Kubernetes Secret 作用是什么?
在k8S中,Kubernetes Secret 作用是什么?
|
6月前
|
关系型数据库 MySQL 数据安全/隐私保护
Secret,configmap的定义及使用,探针
Secret,configmap的定义及使用,探针
35 0
|
6月前
|
Kubernetes API 容器
如何基于kubelet的kubeconfig鉴权拉secret
如何利用节点中kubelet的权限获取apiserver中的secret资源
77 0
|
8月前
|
存储 Kubernetes 数据安全/隐私保护
Kubernetes的ConfigMap和Secret
Kubernetes的ConfigMap和Secret
140 0
|
存储 Kubernetes 数据安全/隐私保护
k8s--配置存储 ConfigMap、Secret
k8s--配置存储 ConfigMap、Secret
|
存储 Kubernetes 数据安全/隐私保护
ConfigMap 补充 和 Secret
ConfigMap 补充 和 Secret
|
Kubernetes 数据安全/隐私保护 Perl
ConfigMap、Secret
ConfigMap、Secret
88 1

热门文章

最新文章