Secret/Generator
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -16,6 +16,7 @@ HELP.md
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
.push
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
|
||||
@ -288,7 +288,7 @@ module.exports = {
|
||||
'k8s-intermediate/config/secrets/',
|
||||
'k8s-intermediate/config/secrets/create-kubectl',
|
||||
'k8s-intermediate/config/secrets/create-manually',
|
||||
// 'k8s-intermediate/config/secrets/create-generator',
|
||||
'k8s-intermediate/config/secrets/create-generator',
|
||||
// 'k8s-intermediate/config/secrets/create-kuboard',
|
||||
'k8s-intermediate/config/secrets/decode-edit',
|
||||
// 'k8s-intermediate/config/secrets/use-scenarios',
|
||||
@ -335,8 +335,9 @@ module.exports = {
|
||||
title: 'Open Capacity Platform',
|
||||
collapsable: false,
|
||||
children: [
|
||||
'k8s-practice/ocp/',
|
||||
'k8s-practice/ocp/prepare.html',
|
||||
['k8s-practice/ocp/', 'OCP介绍'],
|
||||
'k8s-practice/ocp/prepare',
|
||||
'k8s-practice/ocp/build',
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
85
learning/k8s-intermediate/config/secrets/create-generator.md
Normal file
85
learning/k8s-intermediate/config/secrets/create-generator.md
Normal file
@ -0,0 +1,85 @@
|
||||
---
|
||||
vssueId: 83
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_使用kubectl创建Secret
|
||||
---
|
||||
|
||||
# 创建Secrets(使用Generator)
|
||||
|
||||
从 kubernetes v1.14 开始,kubectl 集成了 [Kustomize](https://kustomize.io/)。通过 Kustomize,您可以使用 generator(Kustomize 的概念)创建 Secret,并保存到 API Server。Generator 必须在 `kustomization.yaml` 文件中指定。
|
||||
|
||||
::: tip
|
||||
需要结合 [Kustomize](https://kustomize.io/) 一起使用,在您决定采纳 Kustomize 之前,可以暂时不看这篇文章的内容
|
||||
:::
|
||||
|
||||
## 从文件生成 Secret
|
||||
|
||||
例如,如果想从 `./username.txt` 和 `./password.txt` 文件生成(generate)一个 Secret,则可以:
|
||||
|
||||
* 执行如下指令创建 `kustomization.yaml` 文件
|
||||
|
||||
``` sh
|
||||
# Create a kustomization.yaml file with SecretGenerator
|
||||
cat <<EOF >./kustomization.yaml
|
||||
secretGenerator:
|
||||
- name: db-user-pass
|
||||
files:
|
||||
- username.txt
|
||||
- password.txt
|
||||
EOF
|
||||
```
|
||||
|
||||
* 执行指令 `kubectl apply -k .` 以创建 Secret 对象,输出结果如下所示:
|
||||
|
||||
```
|
||||
secret/db-user-pass-96mffmfh4k created
|
||||
```
|
||||
|
||||
* 执行指令 `kubectl get secrets` 以检查创建结果,输出结果如下所示:
|
||||
|
||||
```
|
||||
NAME TYPE DATA AGE
|
||||
db-user-pass-96mffmfh4k Opaque 2 51s
|
||||
```
|
||||
|
||||
* 执行指令 `kubectl describe secrets/db-user-pass-96mffmfh4k` 以查看 Secret 详情(请使用您自己的 Secret 名字),输出结果如下所示:
|
||||
|
||||
```
|
||||
Name: db-user-pass
|
||||
Namespace: default
|
||||
Labels: <none>
|
||||
Annotations: <none>
|
||||
|
||||
Type: Opaque
|
||||
|
||||
Data
|
||||
====
|
||||
password.txt: 12 bytes
|
||||
username.txt: 5 bytes
|
||||
```
|
||||
::: tip
|
||||
生成的 Secret 的名字包含一个 hash 值(Secret 内容的 hash)做为后缀,这种做法可以确保每次修改 Secret 的内容时,都将产生新的 Secret 对象
|
||||
:::
|
||||
|
||||
## 从明文生成 Secret
|
||||
|
||||
例如,如果要从明文 `username=admin` 和 `password=secret`,您可以:
|
||||
|
||||
* 通过如下指令创建 secret generator 的 `kustomization.yaml` 文件:
|
||||
|
||||
``` sh
|
||||
# Create a kustomization.yaml file with SecretGenerator
|
||||
cat <<EOF >./kustomization.yaml
|
||||
secretGenerator:
|
||||
- name: db-user-pass
|
||||
literals:
|
||||
- username=admin
|
||||
- password=secret
|
||||
EOF
|
||||
```
|
||||
|
||||
* 然后执行指令 `kubectl apply -k .` 创建 Secret 对象,输出结果如下所示:
|
||||
|
||||
```
|
||||
secret/db-user-pass-dddghtt9b5 created
|
||||
```
|
||||
@ -4,7 +4,7 @@ layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_使用kubectl创建Secret
|
||||
---
|
||||
|
||||
# 使用 kubectl 创建 Secrets
|
||||
# 创建Secrets(使用kubectl)
|
||||
|
||||
假设某个 Pod 需要访问数据库。在您执行 kubectl 命令所在机器的当前目录,创建文件 `./username.txt` 文件和 `./password.txt` 暂存数据库的用户名和密码,后续我们根据这两个文件配置 kubernetes secrets。
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_使用kubectl创建Secret
|
||||
---
|
||||
|
||||
# 手动创建 Secrets
|
||||
# 创建Secrets(手动)
|
||||
|
||||
和创建其他类型的 API 对象(Pod、Deployment、StatefulSet、ConfigMap 等)一样,您也可以先在 yaml 文件中定义好 Secret,然后通过 `kubectl apply -f` 命令创建。此时,您可以通过如下两种方式在 yaml 文件中定义 Secret:
|
||||
* **data**:使用 data 字段时,取值的内容必须是 base64 编码的
|
||||
|
||||
@ -36,8 +36,8 @@ Kubernetes 自动创建包含访问 Kubernetes APIServer 身份信息的 Secret
|
||||
您可以使用如下方式创建自己的 Secret:
|
||||
|
||||
* [使用 kubectl 创建 Secret](./create-kubectl.html)
|
||||
* 手动创建 Secret
|
||||
* 使用 Generator 创建 Secret
|
||||
* [手动创建 Secret](./create-manually.html)
|
||||
* [使用 Generator 创建 Secret](./create-generator.html)
|
||||
* 使用 Kuboard 创建 Secret
|
||||
|
||||
## 解码和编辑
|
||||
|
||||
Reference in New Issue
Block a user