Что необходимо для установки Kubernetes с двумя стеками на «голом железе»?

Мы собираемся начать настройку нового кластера Kubernetes на «голом железе» в нашем собственном центре обработки данных. Документация по модулям и сервисам k8s великолепна, однако мне не удалось найти какой-либо подробной документации по компонентам, необходимым для удовлетворения наших требований:

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

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

2 ответа

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

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

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

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

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

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

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

Другие вопросы по тегам