Я безуспешно ответил на аналогичный вопрос на форуме Rancher: https://forums.rancher.com/t/rancher-2-x-ha-install-and-ssl-termination/12515/3
При соблюдении документации Rancher для установки высокой доступности для балансировщика нагрузки предоставляется образец конфигурации nginx: https://rancher.com/docs/rancher/v2.x/en/installation/ha/create-nodes-lb/
При использовании cert-manager для выдачи сертификатов cert-manager не может получить известную проверку http-01 для проверки владения доменом. Я получаю те же ошибки, что и Янник из сообщения на форуме Rancher, и сам переход по известному адресу приводит к 301 к https (с недействительным сертификатом), поэтому ответ не загружается.
Затем я попытался добавить отдельный блок местоположения nginx conf, чтобы перехватить адрес /.well-known и proxy_pass на входе на серверах ранчо на порту 80, но это вызывает множество 301-х, пока Chrome не остановит его.
Глядя на входящий объект, кажется, что он тоже может прослушивать 443, но событий нет, поэтому, возможно, он не попадает на вход:
Name: cm-acme-http-solver-tr74p
Namespace: cattle-system
Address: x.x.x.x,x.x.x.y
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
rancher.mydomain.com
/.well-known/acme-challenge/Bf-oPbO34tgehadfI0k7Qsf_fza4rHUKC534easfO5TM cm-acme-http-solver-xnw4t:8089 (<none>)
Annotations:
field.cattle.io/publicEndpoints: [{"addresses":["x.x.x.x","x.x.x.y"],"port":80,"protocol":"HTTP","serviceName":"cattle-system:cm-acme-http-solver-xnw4t","ingressName":"cattle-system:cm-acme-http-solver-tr74p","hostname":"rancher.mydomain.com","path":"/.well-known/acme-challenge/Bf-oPbO6hy7DdfI0k7Qsf_fza4rHUKC575duPOfO5TM","allNodes":false}]
Events: <none>
Name: rancher
Namespace: cattle-system
Address: x.x.x.x,x.x.x.xy
Default backend: default-http-backend:80 (<none>)
TLS:
tls-rancher-ingress terminates rancher.mydomain.com
Rules:
Host Path Backends
---- ---- --------
rancher.mydomain.com
rancher:80 (<none>)
Annotations:
certmanager.k8s.io/issuer: rancher
field.cattle.io/publicEndpoints: [{"addresses":["x.x.x.x","x.x.xy"],"port":443,"protocol":"HTTPS","serviceName":"cattle-system:rancher","ingressName":"cattle-system:rancher","hostname":"rancher.mydomain.com","allNodes":false}]
nginx.ingress.kubernetes.io/proxy-connect-timeout: 30
nginx.ingress.kubernetes.io/proxy-read-timeout: 1800
nginx.ingress.kubernetes.io/proxy-send-timeout: 1800
Events: <none>
Копаясь дальше во вход, вижу следующее:
I0123 02:02:32.615026 7 controller.go:179] Backend successfully reloaded.
I0123 02:07:26.990283 7 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"cattle-system", Name:"rancher", UID:"a18cc766-1eb3-11e9-a3a4-9c8e9916e498", APIVersion:"extensions", ResourceVersion:"1347", FieldPath:""}): type: 'Normal' reason: 'CREATE' Ingress cattle-system/rancher
W0123 02:07:26.990427 7 backend_ssl.go:49] error obtaining PEM from secret cattle-system/tls-rancher-ingress: error retrieving secret cattle-system/tls-rancher-ingress: secret cattle-system/tls-rancher-ingress was not found
W0123 02:07:30.307510 7 controller.go:769] Service "cattle-system/rancher" does not have any active Endpoint.
W0123 02:07:30.307607 7 controller.go:1015] SSL certificate "cattle-system/tls-rancher-ingress" does not exist in local store.
I0123 02:07:30.307675 7 controller.go:169] Configuration changes detected, backend reload required.
Кажется, он не может загрузить секрет tls. Rancher предоставляет информацию о том, как это сделать: https://rancher.com/docs/rancher/v2.x/en/installation/ha/helm-rancher/tls-secrets/ но это кажется нелогичным для использования LE и cert-manager вместо использования ваших собственных сертификатов.
Кому-нибудь повезло с этим с Rancher или увидеть что-нибудь, чего мне не хватает?