k8s 的secret有什么作用,怎么创建 引用
时间: 2023-12-06 18:44:44 浏览: 57
Kubernetes中的Secret是一种用于存储敏感数据的资源对象,如API密钥、数据库密码等。它可以被挂载到Pod的Volume中,也可以通过环境变量或者命令行参数传递给容器,以便容器可以安全地访问这些敏感数据。
Secret可以被创建和更新,并且可以由Kubernetes管理员管理。创建一个Secret有两种方式:命令行和YAML文件。
1. 命令行方式
```
$ kubectl create secret generic <secret_name> --from-literal=<key>=<value>
```
其中,`<secret_name>`是你想要创建的Secret的名称,`<key>`是密钥名称,`<value>`是密钥的值。
例如,要创建一个包含API密钥的Secret:
```
$ kubectl create secret generic my-api-key --from-literal=api-key=1234567890
```
2. YAML文件方式
创建一个包含API密钥的Secret的YAML文件,例如:
```
apiVersion: v1
kind: Secret
metadata:
name: my-api-key
type: Opaque
data:
api-key: MTIzNDU2Nzg5MA==
```
然后,使用以下命令创建Secret:
```
$ kubectl apply -f secret.yaml
```
引用Secret:
你可以在Pod的spec中声明Volume并将Secret挂载到其中。
例如,在以下Pod配置中,将my-api-key Secret挂载到/my-secrets目录下:
```
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- name: my-secrets
mountPath: /my-secrets
readOnly: true
volumes:
- name: my-secrets
secret:
secretName: my-api-key
```
这样,容器就可以通过访问/my-secrets/api-key文件来获取API密钥。
阅读全文