我决定按照步骤github.com/jetstack/kube-lego
进行操作我为echoserver-tls
来自$ kubectl get svc -n nginx-ingress
我设置A记录指向外部IP地址。
当我浏览example.com
时,echo服务器会响应CLIENT VALUES:
client_address=('10.46.1.5', 45422) (10.46.1.5)
command=GET
path=/
real path=/
query=
request_version=HTTP/1.1
[truncated...]
但是当我尝试https://example.com时,我收到了错误
default backend - 404
我的配置完全来自github.com/jetstack/kube-lego。我错过了一个未提及/跳过的明显步骤
我不知道要分享的细节,但我正在显示结果
kubectl describe ing -n kube-lego
Name: kube-lego-nginx
Namespace: kube-lego
Address: xx.xx.xx.xx
Default backend: default-http-backend:80 (10.36.1.7:8080)
Rules:
Host Path Backends
---- ---- --------
example.com
/.well-known/acme-challenge kube-lego-nginx:8080 (<none>)
Annotations:
whitelist-source-range: 0.0.0.0/0
ssl-redirect: false
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
21m 21m 1 nginx-ingress-controller Normal CREATE kube-lego/kube-lego-nginx
21m 21m 1 nginx-ingress-controller Normal UPDATE kube-lego/kube-lego-nginx
21m 21m 1 nginx-ingress-controller Normal CREATE ip: xxx.xxx.xx.xxx
如果您需要更多信息/日志,请告诉我。协助。 谢谢。
答案 0 :(得分:0)
如果您通过关注https://example.com获得default backend - 404
,则表示您的SSL证书已正确安装且入口未找到为您的主机公开的服务。因此,它使用默认后端,每个请求都会响应消息default backend - 404
。
问题出在您的入口配置中。它应该看起来像:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- hosts:
- example.com
secretName: echoserver-tls
rules:
- host: example.com
http:
paths:
- backend:
serviceName: echoheaders # your service name
servicePort: 80
path: /