Secret/Generator
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -16,6 +16,7 @@ HELP.md
|
|||||||
*.iws
|
*.iws
|
||||||
*.iml
|
*.iml
|
||||||
*.ipr
|
*.ipr
|
||||||
|
.push
|
||||||
|
|
||||||
### NetBeans ###
|
### NetBeans ###
|
||||||
/nbproject/private/
|
/nbproject/private/
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ module.exports = {
|
|||||||
'k8s-intermediate/config/secrets/',
|
'k8s-intermediate/config/secrets/',
|
||||||
'k8s-intermediate/config/secrets/create-kubectl',
|
'k8s-intermediate/config/secrets/create-kubectl',
|
||||||
'k8s-intermediate/config/secrets/create-manually',
|
'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/create-kuboard',
|
||||||
'k8s-intermediate/config/secrets/decode-edit',
|
'k8s-intermediate/config/secrets/decode-edit',
|
||||||
// 'k8s-intermediate/config/secrets/use-scenarios',
|
// 'k8s-intermediate/config/secrets/use-scenarios',
|
||||||
@@ -335,8 +335,9 @@ module.exports = {
|
|||||||
title: 'Open Capacity Platform',
|
title: 'Open Capacity Platform',
|
||||||
collapsable: false,
|
collapsable: false,
|
||||||
children: [
|
children: [
|
||||||
'k8s-practice/ocp/',
|
['k8s-practice/ocp/', 'OCP介绍'],
|
||||||
'k8s-practice/ocp/prepare.html',
|
'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
|
description: Kubernetes教程_在Kubernetes中_使用kubectl创建Secret
|
||||||
---
|
---
|
||||||
|
|
||||||
# 使用 kubectl 创建 Secrets
|
# 创建Secrets(使用kubectl)
|
||||||
|
|
||||||
假设某个 Pod 需要访问数据库。在您执行 kubectl 命令所在机器的当前目录,创建文件 `./username.txt` 文件和 `./password.txt` 暂存数据库的用户名和密码,后续我们根据这两个文件配置 kubernetes secrets。
|
假设某个 Pod 需要访问数据库。在您执行 kubectl 命令所在机器的当前目录,创建文件 `./username.txt` 文件和 `./password.txt` 暂存数据库的用户名和密码,后续我们根据这两个文件配置 kubernetes secrets。
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ layout: LearningLayout
|
|||||||
description: Kubernetes教程_在Kubernetes中_使用kubectl创建Secret
|
description: Kubernetes教程_在Kubernetes中_使用kubectl创建Secret
|
||||||
---
|
---
|
||||||
|
|
||||||
# 手动创建 Secrets
|
# 创建Secrets(手动)
|
||||||
|
|
||||||
和创建其他类型的 API 对象(Pod、Deployment、StatefulSet、ConfigMap 等)一样,您也可以先在 yaml 文件中定义好 Secret,然后通过 `kubectl apply -f` 命令创建。此时,您可以通过如下两种方式在 yaml 文件中定义 Secret:
|
和创建其他类型的 API 对象(Pod、Deployment、StatefulSet、ConfigMap 等)一样,您也可以先在 yaml 文件中定义好 Secret,然后通过 `kubectl apply -f` 命令创建。此时,您可以通过如下两种方式在 yaml 文件中定义 Secret:
|
||||||
* **data**:使用 data 字段时,取值的内容必须是 base64 编码的
|
* **data**:使用 data 字段时,取值的内容必须是 base64 编码的
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ Kubernetes 自动创建包含访问 Kubernetes APIServer 身份信息的 Secret
|
|||||||
您可以使用如下方式创建自己的 Secret:
|
您可以使用如下方式创建自己的 Secret:
|
||||||
|
|
||||||
* [使用 kubectl 创建 Secret](./create-kubectl.html)
|
* [使用 kubectl 创建 Secret](./create-kubectl.html)
|
||||||
* 手动创建 Secret
|
* [手动创建 Secret](./create-manually.html)
|
||||||
* 使用 Generator 创建 Secret
|
* [使用 Generator 创建 Secret](./create-generator.html)
|
||||||
* 使用 Kuboard 创建 Secret
|
* 使用 Kuboard 创建 Secret
|
||||||
|
|
||||||
## 解码和编辑
|
## 解码和编辑
|
||||||
|
|||||||
Reference in New Issue
Block a user