k8s secret 证书
时间: 2023-10-13 18:11:30 浏览: 100
Kubernetes Secret 是一个用来存储敏感数据的 Kubernetes 对象,包括 API 密钥、密码、 OAuth 令牌和 TLS 证书等。要创建一个 TLS 证书的 Secret,可以执行以下步骤:
1. 创建一个包含证书和私钥的 PEM 文件。可以通过 OpenSSL 等工具生成这个文件。
2. 将 PEM 文件的内容放入 Kubernetes Secret 中。可以使用 `kubectl create secret tls` 命令创建 Secret,如下所示:
```
kubectl create secret tls <secret-name> --cert=<path-to-cert-file> --key=<path-to-key-file>
```
也可以将 PEM 文件的内容以 base64 编码的形式放入 Secret 中,如下所示:
```
kubectl create secret tls <secret-name> --cert=<path-to-cert-file> --key=<path-to-key-file> --dry-run=client -o yaml | kubectl apply -f -
```
其中 `--dry-run=client -o yaml` 选项会将 Secret 的 YAML 配置输出到标准输出,`| kubectl apply -f -` 会将 YAML 配置应用到 Kubernetes 集群中。
3. 在需要使用证书的 Kubernetes 对象(如 Ingress、Service 等)的 YAML 配置中,将 Secret 的名称和证书密钥的名称指定为 TLS 配置的一部分,如下所示:
```
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-cert: <secret-name>
spec:
tls:
- hosts:
- example.com
secretName: <secret-name>
...
```
在这个例子中,`nginx.ingress.kubernetes.io/ssl-cert` 注解指定了使用哪个 Secret,`tls.secretName` 指定了 Secret 的名称。
阅读全文