#kubernetes #proxy #openstack #rbac #kubernetes-apiserver
#kubernetes #прокси #openstack #rbac #kubernetes-apiserver
Вопрос:
У меня есть Kubernetes Master, прослушивающий внутренний сетевой адрес Openstack 192.168.6.6: 6443. Этот компьютер имеет плавающий IP-адрес, связанный для доступа на основе ssh (x.x.x.x) из моего дома. SSH, полученный на плавающем IP-адресе, отправляется на внутренний IP-адрес. Но это не работает для пересылки 6443.
Как мне получить доступ к серверу API K8S из моего дома, когда я могу получить доступ к плавающему IP-адресу, связанному с ведущим сервером K8S, но не к внутреннему IP-адресу, который прослушивает сервер API.
Я знаю метод копирования файла конфигурации на ваш локальный компьютер, но файлы конфигурации имеют ip-адрес, на котором прослушивается master, и этот IP недоступен извне Openstack.
Спасибо за любую помощь
Ответ №1:
Мне удалось решить эту проблему путем переустановки кластера k8s в OpenStack и предоставления плавающего IP-адреса в качестве параметра «—apiserver-cert-extra-sans» для kubeadm.
инициализация kubeadm —apiserver-cert-extra-sans=
Ответ №2:
1. Настройте IP-адрес сервера API
Вам необходимо заменить IP-адрес сервера API в файле KUBE_CONFIG на плавающий IP-адрес.
2. Настройте группу безопасности
Затем вам нужно добавить правило входа, которое разрешает порт TCP 6443 для группы безопасности интерфейса главного узла.
Комментарии:
1. Большое спасибо. Я не знал, что вы можете изменить адрес, по которому прослушивается сервер API. Как это делается? Кроме того, не сделает ли это мастер недоступным для рабочих узлов в openstack?
2. Таким образом, адрес сервера api в файле kube_config указывает только адрес, на который клиент отправит запрос. Этот плавающий IP-адрес будет перенаправлен на внутренний IP-адрес сервера kube_api, который прослушивает сервер api. Поэтому я бы сказал, что IP-адрес прослушивания не меняется. А также в кластере рабочие узлы уже подключены к кластеру, используя адрес сервера api (внутренний). Адрес в kube_config используется только для используемого вами клиента kube, а не для рабочих узлов.
3. Еще раз спасибо, но это было первое, что я попробовал. Я скопировал файл конфигурации с главного сервера k8s на свой ноутбук и изменил IP 192.168.6.6:6443 на <плавающий ip>:6443. Но выполнение команды kubectl с этим выдает ошибку: «Невозможно подключиться к серверу: x509: сертификат действителен для 192.168.6.6, а не <плавающий ip>