gcloud kube-lego设置ssl问题

时间:2017-10-16 19:12:08

标签: nginx kubernetes containers gcloud lets-encrypt

经过几天的挣扎,我已经被抛弃了。我想用gube-lego

在gcloud上设置一个SSL容器站点

我决定按照步骤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

如果您需要更多信息/日志,请告诉我。协助。 谢谢。

1 个答案:

答案 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: /