Что необходимо для установки kubernetes на голом металле с двумя стеками?

Мы собираемся начать настройку нового кластера kubernetes на пустом металле в нашем собственном центре данных. Документация по модулям и сервисам k8s великолепна, однако мне не удалось найти исчерпывающей документации по компонентам, необходимым для выполнения наших требований:

Подсистемы должны быть доступны по IPv4 и IPv6 Подсистемы должны иметь возможность перемещаться между хостами и оставаться доступными по обоим протоколам Подсистемы должны иметь доступ к внешним ресурсам через IPv4 и IPv6. Я знаю, что можно использовать MetalLb для управления входящим трафиком. Но будет ли это также работать, когда стручок пытается достичь внешнего ресурса v4/v6?

Что в целом необходимо для удовлетворения требований?

2
задан 17 August 2021 в 07:48
2 ответа

Я использовал Kubernetes 1.21 с Calico для подключения к сети за моим маршрутизатором/брандмауэром BGP (Juniper SRX) для внешнего подключения. Calico можно комбинировать с metallb, где metallb выполняет оркестровку, а Calico выполняет маршрутизацию BGP. Подробнее об этом см. https://docs.projectcalico.org/networking/advertise-service-ips#advertise-service-load-balancer-ip-addresses.

Добавьте nginx для входа и cert-manager для сертификатов, и у вас будет все, что вам нужно.

Я заметил, что балансировщик нагрузки не поддерживает двойной стек, но вы можете легко обойти это, создав два отдельных: один IPv6 с одним стеком и один IPv4 с одним стеком.

5
ответ дан 17 August 2021 в 13:49

Я использую Kubernetes 1.21 с Calico и BGP без metalb.

Использование traefik для входа и cert-manager для сертификатов.

Балансировщик нагрузки Traefik поддерживает двойной стек, по крайней мере, без metalb, но требует, чтобы вы установили для службы ipFamilyPolicy значение PreferDualStack и настроили cidr служб с cidr IPv6 ( что должно быть сделано по умолчанию в kubeadm v1.21+). Мне пришлось использовать RequireDualStack с k3s, чтобы он принимал соединения IPv6.

https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services https://kubernetes.io/docs/tasks/network/validate-dual-stack/

2
ответ дан 17 August 2021 в 22:38

Теги

Похожие вопросы