(И я бы с удовольствием понял, как заставить pups правильно отступать вставленные строки, но это уже отступление.)
После этого изменения контроллер Ingress, похоже, перестал обслуживать сайт, хотя он работал и корректно перенаправлял трафик как минимум некоторое время.
Очевидно, это относится к категории unsupported-install, но если у кого-то есть идея, куда посмотреть дальше, буду признателен.
Вы используете HTTP-балансировщик нагрузки или TCP-балансировщик нагрузки? Если HTTP, то протокол, видимый на входе, может быть помещён в нестандартный заголовок, который Discourse не ищет.
Похоже, что полностью управляемая настройка выглядит следующим образом:
$ gcloud compute addresses create discourse-ip-address --global
# ^~~~~~~~~~~~~~~~~~~~ пользовательское имя
# ПРЕДУПРЕЖДЕНИЕ: резервирование IP-адреса без его использования влечет за собой штраф в размере 0,010 USD/час
---
apiVersion: networking.gke.io/v1beta1
kind: ManagedCertificate
metadata:
name: discourse-cert
spec:
domains:
- discourse.example.com # настройте под себя
---
apiVersion: extensions/v1beta1
# если версия v1.14 или новее:
# apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: discourse-web-ingress
annotations:
networking.gke.io/managed-certificates: discourse-cert
kubernetes.io/ingress.global-static-ip-name: discourse-ip-address
spec:
backend:
serviceName: discourse-web # убедитесь, что это верно
servicePort: 80
Спасибо большое, @riking! Да, похоже, проблема в балансировщике нагрузки. Я думаю, что ingress работает нормально (и теперь у меня есть представление о том, что между ними есть разница). Я переключился на настройку, которую вы показали, и получаю те же результаты, что и с более сложной конфигурацией. Думаю, следующим шагом будет разобраться с tcpdump и посмотреть, что находится в этих заголовках. . .
РЕДАКТИРОВАНИЕ: Похоже, это должно работать. Вот что я вижу:
@pfaffman Я могу помочь с этим — я работаю с GCP и уже решал эту проблему ранее. Однако у меня занято несколько часов, но если вы сможете прислать мне конфигурацию вашего балансировщика нагрузки (вместе с настройками проверки работоспособности) сюда или в личные сообщения, я постараюсь найти проблему.
Да. Похоже, сейчас всё работает! Я, наверное, немного запутался с магическим портом 30182, но, полагаю, это какая-то магия k8s, которую я разберу в другой раз.
Попробую ваш блок after_web_config:. Он кажется немного более чистым по сравнению с тем, что я делал.