gpt4 book ai didi

ssl - Kubernetes:为什么我的最大挑战是 EOF/没有响应?

转载 作者:行者123 更新时间:2023-12-02 12:09:22 25 4
gpt4 key购买 nike

我正在使用 Kops 在 AWS 中设置 Kubernetes 集群。我有一个 nginx 入口 Controller ,我正在尝试使用letsencrypt来设置tls。现在我无法启动并运行我的入口,因为我的证书质询收到此错误:Waiting for http-01 challenge propagation: failed to perform self check GET request 'http://critsit.io/.well-known/acme-challenge/[challengeId]': Get http://critsit.io/.well-known/acme-challenge/[challengeId]: EOF我有一个负载平衡器服务,它占用公共(public)流量,证书颁发者自动创建另外 2 个没有公共(public) IP 的服务。
我在这里做错了什么?是否存在一些网络问题阻止 pod 完成 acme 流程?或者也许是别的什么?
注意:我在 Route53 中设置了一条 A 记录,以将流量引导到 LoadBalancer。

> kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cm-acme-http-solver-m2q2g NodePort 100.69.86.241 <none> 8089:31574/TCP 3m34s
cm-acme-http-solver-zs2sd NodePort 100.67.15.149 <none> 8089:30710/TCP 3m34s
default-http-backend NodePort 100.65.125.130 <none> 80:32485/TCP 19h
kubernetes ClusterIP 100.64.0.1 <none> 443/TCP 19h
landing ClusterIP 100.68.115.188 <none> 3001/TCP 93m
nginx-ingress LoadBalancer 100.67.204.166 [myELB].us-east-1.elb.amazonaws.com 443:30596/TCP,80:30877/TCP 19h
这是我的入口设置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: critsit-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/acme-challenge-type: "http01"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- critsit.io
- app.critsit.io
secretName: letsencrypt-prod
rules:
- host: critsit.io
http:
paths:
- path: /
backend:
serviceName: landing
servicePort: 3001
我的证书颁发者:
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: michael.vegeto@gmail.com
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt-prod
# Enable the HTTP-01 challenge provider
solvers:
- http01:
ingress:
class: nginx
selector: {}
更新:我注意到我的负载均衡器将所有实例标记为 OutOfOrder,因为它们未通过运行状况检查。我想知道这是否与问题有关。
第二次更新:我完全放弃了这条路线,并使用 Istio 重建了我的网络/入口系统

最佳答案

您收到的错误消息可能意味着各种各样的问题。但是,您可以检查/做一些事情以使其正常工作:

  • 删除 Ingress、证书和 cert-manager fully .之后将它们全部添加回来以确保它安装干净。有时,过时的证书或坏/多入口路径可能是问题所在。例如,您可以使用 Helm:
  • helm install my-nginx-ingress stable/nginx-ingress
    helm repo add jetstack https://charts.jetstack.io
    helm repo update
    helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v0.15.0 --set installCRDs=true
  • 确保您的流量允许 HTTP 或具有带有可信证书的 HTTPS。
  • 检查负载均衡器的发夹模式并确保其正常工作。
  • 地址:nginx.ingress.kubernetes.io/ssl-redirect: "false"对 Ingress 规则的注释。稍等片刻,看看是否会创建有效的证书。
  • 您可以在 Kubernetes 集群中手动手动颁发证书。为此,请关注 this guide .
  • 问题可以及时自行解决。目前如果自检失败,则
    使用原因更新状态信息(例如:自检失败),然后
    稍后再试(以允许传播)。这是预期的行为。

  • 这是一个持续存在的问题,正在跟踪 herehere .

    关于ssl - Kubernetes:为什么我的最大挑战是 EOF/没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64560239/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com