我将为不同的服务使用不同的子域,但是这些服务将驻留在不同的K8S群集中。我想知道是否可以在群集之间复制通配符证书。另外,如果某处有类似的示例,请链接至我。 任何帮助将不胜感激。
答案 0 :(得分:0)
因此,cert-manager中没有对多个集群的本地处理。
也就是说,没有什么能阻止您手动或自动在群集之间的结果“秘密”资源之间进行复制。
“ kubed”项目(通过appscode)支持在集群https://github.com/appscode/kubed之间同步Secrets。完整信息可在其网站上找到:https://appscode.com/products/kubed/0.8.0/guides/config-syncer/inter-cluster/
我希望这会有所帮助!
答案 1 :(得分: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": "*"
}
]
}