2016-03-30 16 views
7

Ho un cluster kubernetes in esecuzione in azzurro. Qual è il modo di accedere al cluster dal comando kubectl locale. Ho fatto riferimento a here ma sul nodo principale di kubernetes non è presente alcun file di configurazione del kube. Inoltre, kubectl config visualizza i risultati inConfigura il comando kubectl per accedere al cluster Kubernetes remoto in azzurro

apiVersion: v1 
clusters: [] 
contexts: [] 
current-context: "" 
kind: Config 
preferences: {} 
users: [] 

risposta

16

Trovato un modo per accedere al cluster kubernetes remoto senza ssh'ing su uno dei nodi nel cluster. È necessario modificare il file ~/.kube/config come di seguito:

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

Quindi impostare contesto eseguendo:

kubectl config use-context test 

Dopo questo si dovrebbe essere in grado di interagire con il cluster.

Nota: Per aggiungere la certificazione e l'uso chiave seguente link: http://kubernetes.io/docs/user-guide/kubeconfig-file/

In alternativa, si può anche provare seguente comando

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

Come hai impostato il tuo cluster? Per accedere al cluster da remoto è necessario un file kubeconfig (sembra che tu non ne abbia uno) e gli script di installazione generano un file kubeconfig locale come parte del processo di distribuzione del cluster (perché altrimenti il ​​cluster che hai appena distribuito non è utilizzabile) . Se qualcun altro ha distribuito il cluster, è necessario seguire le istruzioni sulla pagina a cui ci si è collegati per ottenere una copia delle credenziali del client necessarie per connettersi al cluster.

+0

sto usando seguente link per aprire un cluster http://kubernetes.io/docs/getting-started-guides/coreos/azure/ma non trova il puntatore nel file kubeconfig. –

+1

Leggendo l'esempio, sembra che la procedura dettagliata abbia eseguito i comandi 'kubectl' sul nodo master. Puoi accedere al master e provare a eseguire i comandi lì? –

+0

Sì, posso accedere al cluster dal nodo principale. Ma ho bisogno di aiuto per accedervi da remoto (senza ssh'ing su master node). –

0

Il setup Azure espone solo le porte ssh esternamente. Questo può essere trovato in ./output/kube_xxxxxxxxxx_ssh_conf Quello che ho fatto è tunnel il ssh essere disponibile sulla mia macchina aggiungendo un tunnel di porta ssh. Andate in tutto il file di cui sopra e sotto la "host *" sezione aggiungere un'altra linea come il muggito:

LocalForward 8080 127.0.0.1:8080

che mappa la mia porta macchina locale 8080 (Dove Ricerca kubectl per il default contesto) alla porta 8080 della macchina remota in cui il master ascolta le chiamate api. quando si apre ssh al kube-00 mentre i documenti regolari mostrano di poter ora effettuare chiamate dal proprio kubectl locale senza alcuna configurazione aggiuntiva.

2

È inoltre possibile definire il percorso file di kubeconfig passando il parametro --kubeconfig.

Ad esempio, copiare ~/.kube/config dell'host Kubernetes remoto sul progetto locale ~/myproject/.kube/config. In ~/myproject è quindi possibile elencare i pod del server Kubernetes remoto eseguendo kubectl get pods --kubeconfig ./.kube/config.

Notare che quando si copiano i valori dal server Kubernetes remoto semplice kubectl config view non sarà sufficiente, in quanto non visualizzerà i segreti del file di configurazione. Invece, devi fare qualcosa come cat ~/.kube/config o usare scp per ottenere il contenuto completo del file.

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

Problemi correlati