Внешний доступ для миникуба, размещенного в Azure - PullRequest
0 голосов
/ 19 февраля 2020

Я установил миникуб в облаке Azure на машине с Ubuntu 18.04. Но я не знаю, как подключиться к нему через кубектл, используя реальный IP виртуальной машины. Использование i minikube в драйвере virtualbox (https://192.168.99.100: 8443 ). Подскажите пожалуйста, как сделать переадресацию портов? Спасибо.

1 Ответ

0 голосов
/ 20 февраля 2020

Я протестировал его и нашел несколько решений.

  1. Самый простой способ сделать мини-куб доступным с вашей локальной машины может быть достигнут с помощью переадресации портов s sh (но вы необходимо помнить, что сеанс s sh открыт постоянно, и это не совсем то, что вам нужно, потому что он будет доступен только с вашего локального компьютера).

    Вы можете запустить:

    ssh <user>@<azure_vm_ip> -L 8443:192.168.99.100:8443
    

    чтобы начать переадресацию портов с локального хоста на мини-куб vm.

    Вам также необходимо скопировать эти файлы сертификатов из каталога azure vm ~/.minikube/ на локальный компьютер:

    ca.crt
    client.crt
    client.key
    

    также скопируйте .kube/config из azure vm на локальный компьютер и отредактируйте пути к файлам сертификатов, упомянутым ранее, и измените IP-адрес сервера на localhost.

  2. второй способ сделать это доступно (на этот раз для внешнего доступа) с помощью переадресации порта s sh возможно, выполнив следующие действия:

    В файле /etc/ssh/sshd_config в azure vm измените GatewayPorts на yes, сохраните файл и запустить * 10 26 *

    systemctl restart sshd
    

    далее, с sh до вашего azure vm и запустите:

    ssh -R 0.0.0.0:8443:192.168.99.100:8443 localhost
    

    запомните о файлах сертификатов и измените IP-адрес сервера в .kube/config file publi c IP вашего azure vm.

    При попытке подключиться к форме мини-куба ваш локальный компьютер может увидеть:

    $ kubectl get pods
    Unable to connect to the server: x509: certificate is valid for 192.168.99.100, 10.96.0.1, 10.0.0.1, not <your_vm_ip>
    

    Поэтому вам нужно либо использовать флаг --insecure-skip-tls-verify, либо создать новые действительные сертификаты (или запустите minikube с --apiserver-ips=<public_ip>, и он сгенерирует для вас действующий сертификат).

    ПРИМЕЧАНИЕ: не забудьте разрешить входящий трафик c на azure vm через порт 8443.

    Если вы не хотите использовать переадресацию порта s sh, вы можете использовать прокси-сервер любого типа, например nginx, который будет работать на azure vm и пересылать запросы в minkube vm

  3. Наверное, лучший способ. Работа без ВМ:

     sudo minikube start --vm-driver=none --apiserver-ips=<public_ip>
    

    --apiserver-ips необходима для генерации соответствующих сертификатов. --vm-driver=none не будет создавать vbox vm

    Теперь все, что вам нужно, это скопировать сертификаты на локальный компьютер и предоставить соответствующий IP-адрес сервера в файле .kube/confg.

Дайте мне знать, если это было полезно.

...