Для доступа к кластеру из внешней сети на первом главном узле установите компоненты: ingress-nginx и metallb.
Для установки компонента ingress-nginx:
Выполните команду:
helm upgrade --install
ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace
Установите класс ingressclass по умолчанию:
kubectl annotate ingressclass nginx ingressclass.kubernetes.io/is-default-class='true'
После выполнения действий на главном узле будет установлен компонент ingress-nginx.
Для установки компонента metallb:
Выполните команду:
helm install metallb metallb/metallb -n metallb-system --create-namespace
Создайте файл metalb-config.yaml для доступа к кластеру с содержимым:
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
- {<IP-адрес master1>}/32
В параметре файле указывается список IP-адресов (например, first-pool), по которым будет доступен кластер. Если в списке несколько IP-адресов, то они перечисляются вертикально.
Примечание. Убедитесь, что все IP-адреса, указанные в списке, имеют привязку к интерфейсам на главных узлах. В примере используется один главный узел, поэтому указан единственный IP-адрес.
Примените настройки, заданные в файле metalb-config.yaml:
kubectl apply -f metalb-config.yaml
Проверьте список IP-адресов:
kubectl get IPAddressPools -n metallb-system
В ответе должен содержаться список с указанными IP-адресами.
После выполнения действий на главном узле будет установлен компонент metallb.
Далее перейдите к настройке разделов под хранилище постоянных томов.
См. также:
Подготовка и развёртывание отказоустойчивого кластера на основе Kubernetes | Настройка разделов под хранилище постоянных томов