#kubernetes #minikube
#kubernetes #minikube
Вопрос:
Для моих служб был установлен тип NodePort
однако на самом деле внешний доступ для этого не требуется — им нужно только иметь возможность общаться друг с другом.
Поэтому я предполагаю, что мне следует изменить их на значения по умолчанию ClusterIP
однако вопрос в том, как я могу продолжать получать доступ к этим службам во время моей локальной разработки?
Итак, когда я вношу изменения с NodePort
на ClusterIP
, а затем перехожу к minikube service list
, это, естественно, показывает no node port
, однако, как я могу теперь получить доступ — есть ли какой-то специальный адрес конечной точки, который я могу откуда-то получить?
Спасибо.
Ответ №1:
Вам потребуется получить к ней доступ, как и в любом другом внекластерном случае. Обычно это означает либо kubectl port-forward
, либо kubectl proxy
, хотя я предпочитаю первое. В общем случае службы ClusterIP доступны только изнутри кластера, доступ через переадресаторы используется только для отладки или нечастого доступа.
Комментарии:
1. Хорошо — а в остальном, правильно ли я на самом деле думаю, что мне следует переключать их с
NodePort
наClusterIP
? Я предполагаю, что это рекомендуемая наилучшая практика?2. Кроме того, я могу использовать переадресацию портов и получить доступ к службе:
kubectl port-forward mygreatservice-94fc44965-pbbtg 3000:3000 -n my-namespace
однако у меня есть 10 таких служб. Есть ли более удобный способ сделать это?3. Ожидается ли, что эта служба будет использоваться только внутри кластера или к ней можно получить доступ извне?
4. Доступ к ней осуществляется внутри кластера
5. Тогда да, используйте clusterip
Ответ №2:
Поскольку у вас есть 10 таких служб, я считаю, что использование контроллера Ingress здесь будет лучшим вариантом. Я работал над аналогичным сценарием, когда мы хотели бы получить доступ к нашим сервисам напрямую в локальной среде или среде контроля качества, а не в рабочей.
Мы использовали входной контроллер Nginx. Более подробную информацию о ingress вы можете получить здесь. Он был довольно прост в настройке и хорошо служил своей цели.
Спасибо!
Комментарии:
1. Итак, я просто настраиваю traefik, и, похоже, это может помочь. Итак, просто для проверки, для ваших целей тестирования у вас есть, скажем, «исходный файл разработки», который вы применяете, чтобы предоставить вам доступ ко всем вашим сервисам. Тогда в рабочей среде вы бы не хотели, чтобы эти службы были открыты открыто, поэтому вы не применяете этот вход?
2. @userMod2 Да. У нас был бы доступ только к общедоступным сервисам.