我会为不同的服务使用不同的子域,但这些服务将驻留在不同的 K8S 集群中。我想知道我是否可以跨集群复制通配符证书。另外,如果某处有类似的示例,请将我链接到它。任何帮助,将不胜感激。
问问题
181 次
2 回答
0
我知道,我参加聚会有点晚了,但写一个答案可能对某人有帮助
对于通配符证书DNS-01
方法,需要 auth。您可以根据用例或您正在使用的任何 DNS 使用任何 DNS。
注意:您可能需要先在 DNS 中添加 CAA 记录。
CAA 记录可以添加到 DNS 区域
示例:
Type Value
devops.in CAA 0 issuewild "letsencrypt.org"
从以下网址获取您的记录详细信息:https ://sslmate.com/caa/
首先,我们必须access key
使用命令创建用于存储的秘密
kubectl create secret generic route53-secret --from-literal=secret-access-key="skjdflk4598sf/dkfj490jdfg/dlfjk59lkj"
这里分享例子issuer.yaml
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: test123@gmail.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- selector:
dnsZones:
- "devops.in"
dns01:
route53:
region: us-east-1
hostedZoneID: Z2152140EXAMPLE
accessKeyID: AKIA5A5D7EXAMPLE
secretAccessKeySecretRef:
name: route53-secret
key: secret-access-key
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: le-crt
spec:
secretName: tls-secret
issuerRef:
kind: Issuer
name: letsencrypt-prod
commonName: "*.devops.in"
dnsNames:
- "*.devops.in"
还要确保您的用户有必要的权限来管理Route53
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "route53:GetChange",
"Resource": "arn:aws:route53:::change/*"
},
{
"Effect": "Allow",
"Action": "route53:ChangeResourceRecordSets",
"Resource": "arn:aws:route53:::hostedzone/*"
},
{
"Effect": "Allow",
"Action": "route53:ListHostedZonesByName",
"Resource": "*"
}
]
}
于 2021-07-21T20:30:32.207 回答
0
因此,cert-manager 中没有对多个集群的本地处理。
也就是说,没有什么可以阻止您手动或自动在集群之间复制生成的“秘密”资源。
“kubed”项目(通过appscode)支持在集群之间同步Secrets:https ://github.com/appscode/kubed 。完整信息可以在他们的网站上找到:https ://appscode.com/products/kubed/0.8.0/guides/config-syncer/inter-cluster/
我希望这有帮助!
于 2018-07-19T10:30:25.623 回答