Amazon web services LetsEncrypt未通过AWS EKS中的Kubernetes入口和负载平衡器进行验证
LetsEncrypt未通过AWS EKS中的Kubernetes入口和负载平衡器进行验证 客户问题Amazon web services LetsEncrypt未通过AWS EKS中的Kubernetes入口和负载平衡器进行验证,amazon-web-services,kubernetes,lets-encrypt,kubernetes-ingress,amazon-eks,Amazon Web Services,Kubernetes,Lets Encrypt,Kubernetes Ingress,Amazon Eks,LetsEncrypt未通过AWS EKS中的Kubernetes入口和负载平衡器进行验证 客户问题 apiVersion: cert-manager.io/v1alpha2 kind: ClusterIssuer metadata: name: letsencrypt-staging namespace: cert-manager spec: acme: # The ACME server URL server: https://acme-staging-v02.a
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
namespace: cert-manager
spec:
acme:
# The ACME server URL
server: https://acme-staging-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: my@email.com
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt-staging
# Enable the HTTP-01 challenge provider
solvers:
- http01:
ingress:
class: nginx
亚马尔酒店
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: echo-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-staging"
spec:
tls:
- hosts:
- echo0.site.com
secretName: echo-tls
rules:
- host: echo0.site.com
http:
paths:
- backend:
serviceName: echo0
servicePort: 80
事件
12m Normal IssuerNotReady certificaterequest/echo-tls-3171246787 Referenced issuer does not have a Ready status condition
12m Normal GeneratedKey certificate/echo-tls Generated a new private key
12m Normal Requested certificate/echo-tls Created new CertificateRequest resource "echo-tls-3171246787"
4m29s Warning ErrVerifyACMEAccount clusterissuer/letsencrypt-staging Failed to verify ACME account: context deadline exceeded
4m29s Warning ErrInitIssuer clusterissuer/letsencrypt-staging Error initializing issuer: context deadline exceeded
kubectl证书
Name: echo-tls
Namespace: default
Labels: <none>
Annotations: <none>
API Version: cert-manager.io/v1alpha3
Kind: Certificate
Metadata:
Creation Timestamp: 2020-04-04T23:57:22Z
Generation: 1
Owner References:
API Version: extensions/v1beta1
Block Owner Deletion: true
Controller: true
Kind: Ingress
Name: echo-ingress
UID: 1018290f-d7bc-4f7c-9590-b8924b61c111
Resource Version: 425968
Self Link: /apis/cert-manager.io/v1alpha3/namespaces/default/certificates/echo-tls
UID: 0775f965-22dc-4053-a6c2-a87b46b3967c
Spec:
Dns Names:
echo0.site.com
Issuer Ref:
Group: cert-manager.io
Kind: ClusterIssuer
Name: letsencrypt-staging
Secret Name: echo-tls
Status:
Conditions:
Last Transition Time: 2020-04-04T23:57:22Z
Message: Waiting for CertificateRequest "echo-tls-3171246787" to complete
Reason: InProgress
Status: False
Type: Ready
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal GeneratedKey 18m cert-manager Generated a new private key
Normal Requested 18m cert-manager Created new CertificateRequest resource "echo-tls-3171246787"
名称:echo tls
名称空间:默认值
标签:
注释:
API版本:cert-manager.io/v13
种类:证书
元数据:
创建时间戳:2020-04-04T23:57:22Z
世代:1
业主参考资料:
API版本:扩展/v1beta1
块所有者删除:true
控制员:对
种类:入口
名称:回声入口
UID:1018290f-d7bc-4f7c-9590-b8924b61c111
资源版本:425968
自链接:/api/cert-manager.io/v1alpha3/namespace/default/certificates/echo-tls
UID:0775f965-22dc-4053-a6c2-a87b46b3967c
规格:
Dns名称:
echo0.site.com
发行人参考号:
组:cert-manager.io
种类:聚类分析
名称:letsencrypt staging
秘密名称:echo tls
地位:
条件:
最后转换时间:2020-04-04T23:57:22Z
消息:等待CertificateRequest“echo-tls-3171246787”完成
原因:进展中
状态:False
类型:就绪
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
普通生成密钥18m证书管理器生成了一个新的私钥
正常请求的18m证书管理器创建了新的证书请求资源“echo-tls-3171246787”
我已经做了几天了。我尝试了不同的领域,但最终得到了相同的结果。我是否遗漏了任何东西/步骤。它基于本教程
任何帮助都将不胜感激。通常对于golang应用程序,超过上下文截止时间的错误
表示连接超时。这听起来像是证书管理器
pod无法访问ACME API,如果您的群集有出站防火墙,和/或没有连接到子网的NAT或Internet网关,则可能会发生这种情况。这可能值得一看。我也面临着类似的问题
在ingress nginx
服务中更改负载平衡器
添加/更改外部流量策略:群集
原因是,具有证书颁发者的pod与负载平衡器位于不同的节点上,因此它无法通过入口与自己通信
下面是取自
上下文截止日期已超过
听起来像是证书管理器
pod无法访问ACME api--您的群集是否有奇怪的出站防火墙,和/或是否有NAT或Internet网关连接到子网?打开证书管理器
冗长可能会有所帮助。继续重建集群,确保节点/吊舱具有出站访问权限。现在一切都好了。@mdaniel,你觉得在这里发布一个答案来帮助社区中的其他人怎么样?=)这个答案似乎没有考虑到其他集群的可能性account@RahulBali感谢您的贡献;这个答案是通过请求发布的,并不是说这是唯一可能的错误——那将是一个很长的列表谢谢你的回复,我现在被困在这个地方。如何检查我的连接是否正常,或者这是其他原因?抬起头就好了。我使用的是裸机k8s集群和nginx ingress。您可以问自己的问题,而不是试图在现有答案的注释中进行整个调试会话,如果您的问题是“为什么我的网络无法工作”,您将希望在
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
#CHANGE/ADD THIS
externalTrafficPolicy: Cluster
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
---