我该如何解决 Secret tls-cert.default 未知问题?

how can I solve Secret tls-cert.default unknown issue?

您好,我正在为纽约项目使用大使。我有 2 个服务和 2 个主机文件。当我应用“kubectl apply -f host1.yml”和“kubectl apply -f host2.yml”时,出现以下错误: 如何使用 Ambassador edge stack 1.13 生成正确的 TLS 证书?这里有什么问题?

kubectl get hosts -A

错误:echo-host:继续使用无效的 TLS 机密 tls2-cert

详情:

2021-08-07 14:26:19 diagd 1.13.10-dev.24+g61366062d [P32TAEW] ERROR: Secret tls2-cert.default unknown
2021-08-07 14:26:19 diagd 1.13.10-dev.24+g61366062d [P32TAEW] ERROR: Host echo-host: continuing with invalid TLS secret tls2-cert
2021-08-07 14:26:19 diagd 1.13.10-dev.24+g61366062d [P32TAEW] ERROR: Secret tls-cert.default unknown
2021-08-07 14:26:19 diagd 1.13.10-dev.24+g61366062d [P32TAEW] ERROR: Host quote-host: continuing with invalid TLS secret tls-cert
2021-08-07 14:26:19 diagd 1.13.10-dev.24+g61366062d [P32TAEW] INFO: configuration updated (complete) from snapshot snapshot (S9 L1 G12 C5)
time="2021-08-07 14:26:19" level=warning msg="license_secret_watch: empty decoded license data" func=github.com/datawire/apro/cmd/amb-sidecar.runE.func3 file="github.com/datawire/apro/cmd/amb-sidecar/main.go:258" CMD=amb-sidecar PID=16 THREAD=/license_secret_watch
time="2021-08-07T14:26:19Z" level=info msg="Loaded file /ambassador/envoy/envoy.json"
time="2021-08-07T14:26:19Z" level=info msg="Saved snapshot v126"
time="2021-08-07T14:26:19Z" level=info msg="Pushing snapshot v126"

我的主机文件:

host1.yml:

---
apiVersion: getambassador.io/v2
kind: Host
metadata:
  name: quote-host
spec:
  hostname: quote.kafkacake.xyz
  acmeProvider:
    email: yusufkaratoprak@gmail.com
  tlsSecret:
    name: tls-cert
  requestPolicy:
    insecure:
       action: Redirect
       additionalPort: 8080

host2.yml:

---
apiVersion: getambassador.io/v2
kind: Host
metadata:
  name: echo-host
spec:
  hostname: echo.kafkacake.xyz
  acmeProvider:
    email: yusufkaratoprak@gmail.com
  tlsSecret:
    name: tls2-cert
  requestPolicy:
    insecure:
       action: Redirect
       additionalPort: 8080

如何使用 Ambassador edge stack 1.13 生成正确的 TLS 证书?

您应该尝试使用 ambassador 安装 Cert-manager。边缘堆栈支持 Let's encrypt in acmeProvider 但只有一个挑战 HTTP-01.

您的 HTTP-01 证书挑战失败,而证书管理器也支持 DNS-01 方法,如果您愿意要使用通配符证书,您也可以使用它。

https://www.getambassador.io/docs/edge-stack/latest/howtos/cert-manager/