1.1、命令创建
kubectl create secret tls tls-secret --cert=cert.crt --key=privateKey.key
1.2、yaml文件创建:
apiVersion: v1
kind: Secret
metadata:
name: <secret-name>
data:
tls.crt: <base64-encoded-certificate>
tls.key: <base64-encoded-private-key>
type: kubernetes.io/tls
将 <secret-name> 替换为你想要为 Secret 分配的名称。
将 <base64-encoded-certificate> 和 <base64-encoded-private-key> 替换为对应的 Base64 编码的证书和私钥。你可以使用以下命令将证书和私钥文件进行 Base64 编码:
cat cert.crt | base64 -w0
cat privateKey.key | base64 -w0
将输出的 Base64 编码结果分别替换到 YAML 文件中的 <base64-encoded-certificate> 和 <base64-encoded-private-key>。
然后,使用 kubectl 命令来创建 Secret 对象:
kubectl apply -f tls-secret.yaml
这样就创建了一个名为 <secret-name> 的 TLS Secret。
无论你选择哪种方法,创建完 TLS Secret 对象后,你就可以在 Ingress 或其他 Kubernetes 资源中使用它,来配置 HTTPS 访问。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: domain1.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service1
port:
number: 80
tls:
- hosts:
- domain1.com
secretName: domain1-tls-secret
- hosts:
- domain2.com
secretName: domain2-tls-secret
在上述示例中,为了 domain1.com 和 domain2.com 这两个域名配置了不同的证书。在 tls 字段里,为每个域名指定了对应的 hosts(域名)和 secretName(对应的 Secret 对象的名称)。
确保你已经创建了与每个域名对应的 Kubernetes Secret 对象,并在上述配置中正确指定了证书的 Secret 名称。
这样,当访问 Ingress 中定义的域名时,它们将使用各自指定的证书进行 SSL/TLS 加密通信。
标签:tls,ingress,secret,域名,Secret,应用,简单,domain1,com From: https://www.cnblogs.com/Lqdream/p/17640706.html