comment accéder aux locaux kubernetes minikube tableau de bord à distance
Kubernetes débutant (ou plutôt le réseau de base) question:
Installé seul nœud minikube (0.23 libération) sur une ubuntu boîte de running dans mon lan (adresse IP 192.168.0.20) avec virtualbox.
minikube la commande de démarrage est terminée avec succès en tant que bien
minikube start
Starting local Kubernetes v1.8.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
minikube tableau de bord est également livré en place avec succès. (en cours d'exécution sur 192.168.99.100:30000)
ce que je veux faire est de l'accès minikube tableau de bord de mon macbook (en cours d'exécution sur 192.168.0.11) dans le même réseau local.
Aussi je veux accéder à la même minikube tableau de bord à partir de l'internet.
Pour Accès LAN:
Maintenant, ce que je comprends, je suis en utilisant virtualbox (par défaut vm option), je peux changer le type de réseau (NAT avec la redirection de port) à l'aide de vboxnet commande
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
énumérés ici
Dans mon cas, ce sera quelque chose comme ceci
VBoxManage modifyvm "VM name" --natpf1 "guesthttp,http,,30000,,8080"
Je pense dans le bon sens ici?
Aussi pour l'accès à distance la même minikube tableau de bord de l'adresse, je peux l'installation d'un no-ip.com comme le service. Ils ont demandé à installer leur utilité sur linux et également la configuration de la redirection de port dans les paramètres du routeur qui va de l'avant port de port de l'hôte à l'invité de port. C'est ça? Suis-je manqué quelque chose?
J'ai essayé
kubectl proxy
et le remplacement de localhost
avec le réseau local IP de l'hôte sur lequel minikube
est en cours d'exécution, mais il ne semble pas être à l'écoute sur toutes les interfaces, localhost. Je n'utilise pas d'interface graphique sur l'hôte, donc je voudrais vraiment être en mesure d'y accéder à partir de l'extérieur.OriginalL'auteur robin bajaj | 2017-11-08
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure d'obtenir en cours d'exécution avec quelque chose d'aussi simple que:
OriginalL'auteur Jeff Prouty
Le ssh façon
En supposant que vous avez en ssh sur votre ubuntu boîte.
De la première exécution de
kubectl proxy &
pour exposer le tableau de bord surhttp://localhost:8001
D'exposer le tableau de bord à l'aide de ssh de la redirection de port, de l'exécution:
ssh -R 30000:127.0.0.1:8001 [email protected]
Maintenant, vous devez accéder au tableau de bord de votre macbook à votre réseau local pointer le navigateur de
http://192.168.0.20:30000
À exposer à partir de l'extérieur, juste à exposer le port 30000 à l'aide de no-ip.com, peut-être le changer pour certains de port standard, comme 80.
Note qui n'est pas la solution la plus simple, mais dans certains endroits du travail sans avoir les droits de super-utilisateur 😉 Vous pouvez automatiser la connexion après le redémarrage de ubuntu en boîte à l'aide d'un script d'initialisation et réglage de la clé publique pour la connexion.
kubectl proxy &
sur Ubuntu Serveur hôte etssh -R …
sur le Mac et connecté, mais l'accès{ubuntuServerHostLocalIp}:30000
n'a pas fonctionné. Dois-je avoir droit?kubectl
etssh
doit être exécuté dans Ubuntu, donc vous route localhost:8001 à 192.168.0.20:3000 (si 192.168.0.20 est ubuntu zone adresse ip). Dans ce cas, vous êtes à l'ouverture d'un port interne comme un port ouvert sur le même ordinateur. (Oui, vous êtes en train de créer une connexion ssh à l'intérieur de votre ordinateur, juste pour le routage) pour en savoir Plus à propos de ssh magie ici. Ce sera la redirection de port.J'ai mal compris
kubectl proxy
à l'origine, il s'avère que l'on est censé s'exécuter que sur l'hôte sur lequel ils veulent voir le tableau de bord. Qui a dit lors de l'exécution sur le nœud maître, SSH proxy est en effet une solution. github.com/kubernetes/dashboard/issues/692 a été très utile pour moi.OriginalL'auteur Gabriel Miretti aka gmiretti
@Jeff fourni la réponse parfaite, mettre plus de conseils pour les débutants.
Commencer un proxy à l'aide de @Jeff script, en tant que par défaut il va ouvrir un proxy sur '0.0.0.0:8001'.
Visite le tableau de bord via le lien ci-dessous:
Plus de détails, veuillez vous référer à la officiellement doc.
OriginalL'auteur hao
J'ai eu le même problème récemment et résolu comme suit:
bridge
mode réseau. Pour moi, cela a été fait par le biais de la modification de la minikube machine virtuelle dans VirtualBox de l'INTERFACE utilisateur et nécessaire VM stop/start. Vous ne savez pas comment cela pourrait fonctionner si vous utilisez hyperkit. Ne pas muck avec la valeur par défaut des cartes réseau configuré par minikube: minikube dépend de ces. https://github.com/kubernetes/minikube/issues/1471Ajouter un cluster et associés config pour le
~/.kube/config
comme ci-dessous, la modification de l'adresse IP du serveur afin de correspondre à votre nouvellement exposés VM IP. Les noms peuvent également être modifiées si nécessaire. Notez que leinsecure-skip-tls-verify: true
est nécessaire parce que le certificat https généré par minikube est valable uniquement pour les adresses IP internes de la machine virtuelle.Copiez le
~/.minikube/client.*
les fichiers référencés dans la config de votre linux minikube hôte. Ces sont la clé de sécurité des fichiers requis pour l'accès.Définir votre kubectl contexte:
kubectl config set-context mykubevm
. À ce stade, votre minikube cluster doivent être accessibles (essayezkubectl cluster-info
).Exécuter
kubectl proxy http://localhost:8000
pour créer un proxy local pour l'accès au tableau de bord. Accédez à cette adresse dans votre navigateur.Il est également possible d'utiliser le protocole ssh pour la minikube VM. Copie de la paire de clés ssh de
~/.minikube/machines/minikube/id_rsa*
pour votre .ssh répertoire (renommer pour éviter de souffler de l'écart d'autres touches, par exemplemykubevm
&mykubevm.pub
). Puisssh -i ~/.ssh/mykubevm docker@<kubevm-IP>
OriginalL'auteur AndyB
Légère variation sur l'approche ci-dessus.
J'ai un http web service avec NodePort 30003. Je le rendre disponible sur le port 80 de l'extérieur, par l'exécution de:
sudo ssh -v -i ~/.ssh/id_rsa -N -L 0.0.0.0:80:localhost:30003 ${USER}@$(hostname)
OriginalL'auteur user553965
Jeff Prouty ajouté réponse utile:
Mais pour moi, il n'a pas travaillé au départ.
Je exécutez cette commande sur CentOS 7 machine avec l'exécution de la kubectl (IP locale: 192.168.0.20).
Quand j'ai essayé d'accès tableau de bord à partir d'un autre ordinateur (qui était en LAN évidemment):
seulement ensuite le délai d'attente a été dans mon navigateur web.
La solution pour mon cas, c'est que dans CentOS 7 (et probablement d'autres distributions), vous devez ouvrir le port
8001
dans votre pare-feu OS.Donc, dans mon cas, j'ai besoin de courir dans CentOS 7 terminal:
Et après. Il fonctionne! 🙂
Bien sûr, vous devez être conscient que ce n'est pas sûr de la solution, parce que quelqu'un a accès à votre dashbord maintenant. Mais je pense que pour locale des tests en laboratoire, il sera suffisant.
Dans d'autres distributions linux, la commande pour l'ouverture des ports dans le pare-feu peut être différente. Veuillez utiliser google pour cela.
OriginalL'auteur Schakal