Назад | Перейти на главную страницу

Rancher 2.0 Высокая доступность и сертификаты

Я безуспешно ответил на аналогичный вопрос на форуме 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 или увидеть что-нибудь, чего мне не хватает?