У меня есть два сервера Ubuntu 18.04 с открытым исходным кодом.используя развертывание devstack, я создал многоузловой (2 узла) кластер, где на одном сервере есть службы контроллера и вычисления, а на втором только вычисления.В узле контроллера я включил lbaas v2 с Octavia.
# LBaaS
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas stable/queens
enable_plugin octavia https://git.openstack.org/openstack/octavia stable/queens
enable_service q-lbaasv2 octavia o-cw o-hk o-hm o-api
Я создал кластер kubernetes с 1 главным и 2 миньонными узлами.Некоторое первоначальное тестирование прошло успешно.Развертывание WordPress через Helm создало балансировщик нагрузки, и я смог получить доступ к приложению, как и ожидалось.
Я сейчас пытаюсь настроить контроллер nginx-ingress.при развертывании службы LoadBalancer контроллера nginx-ingress я вижу балансировщик нагрузки, созданный в OpenStack.однако попытки доступа к входному контроллеру с использованием внешнего IP-адреса всегда приводят к пустому ответу.
Используя CLI, я могу видеть балансировщик нагрузки, пулы и элементы.Записи участника указывают на наличие ошибки:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| address | 10.0.0.9 |
| admin_state_up | True |
| created_at | 2018-09-28T22:15:51 |
| id | 109ad896-5953-4b2b-bbc9-d251d44c3817 |
| name | |
| operating_status | ERROR |
| project_id | 12b95a935dc3481688eb840249c9b167 |
| protocol_port | 31042 |
| provisioning_status | ACTIVE |
| subnet_id | 1e5efaa0-f95f-44a1-a271-541197f372ab |
| updated_at | 2018-09-28T22:16:33 |
| weight | 1 |
| monitor_port | None |
| monitor_address | None |
+---------------------+--------------------------------------+
Однако нет никаких указаний на то, что это за ошибка.нет соответствующей ошибки в журнале, который я могу найти.
Используя kubectl port-forward, я проверил, что входной контроллер nginx запущен / работает и правильно настроен.Кажется, проблема в балансировщике нагрузки.
Мой вопрос: как я могу диагностировать ошибку?
Я нашел только одно руководство по устранению неполадок, связанное с lbaas v2, и в нем утверждается, что я смогу видеть пространства имен q-lbaas- при запуске: ip netns list
.Тем не менее, нет ни одного определенного.
Использование helm --dry-run --debug yaml службы:
# Source: nginx-ingress/templates/controller-service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-ingress
chart: nginx-ingress-0.25.1
component: "controller"
heritage: Tiller
release: oslb2
name: oslb2-nginx-ingress-controller
spec:
clusterIP: ""
externalTrafficPolicy: "Local"
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
app: nginx-ingress
component: "controller"
release: oslb2
type: "LoadBalancer"
Интересно, что по сравнению с предыдущей (wordpress) службой LoadBalancer, которая работала, я заметил, что nginx-ingress externalRoutingPolicy имеет значение Local , в то время как wordpress указывает кластер.Я изменил values.yaml для диаграммы nginx-ingress, чтобы установить для externalRoutingPolicy значение Cluster, и теперь балансировщик нагрузки работает.
Мы бы хотели сохранить политику «Local» для сохранения исходных IP-адресов.Есть мысли о том, почему это не работает?