Какие команды kubectl эквивалентны команде minikube "? - PullRequest
0 голосов
/ 06 мая 2020

Я выполнил minikube service mynginx1, и результат:

 |-----------|----------|-------------|-----------------------------|
 | NAMESPACE |   NAME   | TARGET PORT |             URL             |
 |-----------|----------|-------------|-----------------------------| 
 | default   | mynginx1 | 8080-80     | http://192.168.85.153:31706 |
 |-----------|----------|-------------|-----------------------------|

Какие команды эквивалентны kubectl, чтобы я мог получить URL-адрес, если я не использую minikube?

1 Ответ

0 голосов
/ 06 мая 2020

Чтобы открыть приложение k8s, вы можете использовать kubectl expose , чтобы создать службу типа NodePort :

kubectl expose pod <pod_name> --type NodePort --port 8080

или

kubectl expose deployment <deployment_name> --type NodePort --port 8080

тогда, когда вы перечисляете свои услуги, вы увидите:

$ kubectl get services
NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
<service_name> NodePort    10.99.147.24   <none>        8080:31208/TCP   3s

Обратите внимание на два порта в столбце PORT: 8080:31208/TCP. Первый - это порт в кластере, а второй - порт узла. Итак, теперь вы можете получить доступ к своей службе с помощью nodePort, используя: <node-IP>:31208 извне кластера.

Существует еще один вариант, который применяется только в том случае, если вы работаете в облачной среде, и поддерживаются LoadBalancers (так что, если вы либо использование k8s в качестве сервисного решения или запуск автономных k8s в облаке с настроенным облачным провайдером). Вы можете создать службу типа LoadBalancer как показано ниже:

kubectl expose pod <pod_name> --type LoadBalacer --port 8080
$ kubectl get services
NAME             TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
<service_name>   LoadBalancer   10.107.151.19   x.x.x.x       8080:31111/TCP   2s

и теперь использовать ВНЕШНИЙ IP-адрес для подключения к вашей службе: x.x.x.x:8080

...