2016-03-30 10 views

Antwort

16

Es wurde eine Möglichkeit gefunden, auf den Remote-Kubernetes-Cluster zuzugreifen, ohne sich an einen der Knoten im Cluster zu begeben. Sie müssen wie unter ~/.kube/config-Datei bearbeiten:

apiVersion: v1 
clusters:  
- cluster: 
    server: http://<master-ip>:<port> 
    name: test 
contexts: 
- context: 
    cluster: test 
    user: test 
    name: test 

Dann setzt Kontext durch die Ausführung:

kubectl config use-context test 

Danach sollten Sie in der Lage sein, mit dem Cluster zu interagieren.

Hinweis: Um die Zertifizierung und Schlüssel Verwendung folgenden Link hinzufügen: http://kubernetes.io/docs/user-guide/kubeconfig-file/

Alternativ können Sie auch

kubectl config set-cluster test-cluster --server=http://<master-ip>:<port> --api-version=v1 
kubectl config use-context test-cluster 
0

Wie haben Sie Ihren Cluster eingerichtet? Um remote auf den Cluster zugreifen zu können, benötigen Sie eine kubeconfig-Datei (es sieht so aus, als ob Sie keine haben) und die Setup-Skripte erzeugen eine lokale kubeconfig-Datei als Teil des Cluster-Deployment-Prozesses (weil sonst der gerade bereitgestellte Cluster nicht verwendbar ist) . Wenn ein anderer Benutzer den Cluster bereitgestellt hat, sollten Sie den Anweisungen auf der Seite folgen, mit der Sie eine Verbindung hergestellt haben, um eine Kopie der erforderlichen Clientanmeldeinformationen für die Verbindung mit dem Cluster zu erhalten.

+0

ich folgenden Link bin mit einem Cluster zu bringen http://kubernetes.io/docs/getting-started-guides/coreos/azure/kann den Zeiger auf die kubeconfig-Datei jedoch nicht finden. –

+1

Beim Durchlesen des Beispiels sieht es so aus, als hätten Sie die 'kubectl'-Befehle auf dem Master-Knoten ausgeführt. Können Sie sich beim Master anmelden und versuchen, die Befehle dort auszuführen? –

+0

Ja, ich kann vom Master-Knoten auf den Cluster zugreifen. Aber ich brauche Hilfe, um remote darauf zugreifen zu können (ohne einen Master zu betreiben). –

0

Die Azure-Setup folgenden Befehl versuchen, nur die Ports extern ssh aussetzt. Dies kann unter ./output/kube_xxxxxxxxxx_ssh_conf gefunden werden. Was ich getan habe, tunnel die SSH auf meinem Rechner verfügbar sein, indem Sie einen SSH-Port-Tunnel hinzufügen. Gehen Sie in der obigen Datei und unter dem „host *“ Abschnitt eine andere Zeile wie die unten hinzufügen:

LocalForward 8080 127.0.0.1:8080

, die meinem lokalen Rechner Hafenkarten 8080 (wo kubectl Suche nach dem Standard Kontext) zum Port der entfernten Maschine 8080, wo der Master auf api-Anrufe hört. Wenn Sie ssh für den kube-00 öffnen, wie es in normalen Dokumenten angezeigt wird, können Sie jetzt Anrufe von Ihrem lokalen kubectl ohne zusätzliche Konfiguration ausführen.

2

Sie können den Dateipfad von kubeconfig auch definieren, indem Sie den Parameter --kubeconfig übergeben.

Kopieren Sie beispielsweise ~/.kube/config des Remote-Kubernetes-Hosts in das ~/myproject/.kube/config Ihres lokalen Projekts. In ~/myproject können Sie dann die Pods des entfernten Kubernetes-Servers auflisten, indem Sie kubectl get pods --kubeconfig ./.kube/config ausführen.

Beachten Sie, dass beim Kopieren der Werte von der Remote-Kubernetes-Server einfach kubectl config view nicht ausreicht, da es nicht die Geheimnisse der Konfigurationsdatei anzeigen wird. Stattdessen müssen Sie etwas wie cat ~/.kube/config tun oder scp verwenden, um den vollständigen Dateiinhalt zu erhalten.

See: https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/

Verwandte Themen