web-dev-qa-db-fra.com

Configurez la commande kubectl pour accéder au cluster kubernetes distant sur azur

J'ai un cluster kubernetes s'exécutant sur Azure. Quel est le moyen d'accéder au cluster à partir de la commande kubectl locale? Je me suis référé à ici mais sur le nœud maître kubernetes il n’existe pas de fichier de configuration kube En outre, kubectl config view entraîne 

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

Nous avons trouvé un moyen d'accéder à un cluster kubernetes distant sans passer par l'un des nœuds du cluster. Vous devez éditer le fichier ~/.kube/config comme suit:

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

Puis définissez le contexte en exécutant:

kubectl config use-context test

Après cela, vous devriez pouvoir interagir avec le cluster.

Remarque: pour ajouter la certification et l'utilisation de la clé, utilisez le lien suivant: http://kubernetes.io/docs/user-guide/kubeconfig-file/

Alternativement, vous pouvez également essayer de suivre la commande

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

Vous pouvez également définir le chemin de fichier de kubeconfig en passant le paramètre --kubeconfig.

Par exemple, copiez le ~/.kube/config de l'hôte Kubernetes distant dans le ~/myproject/.kube/config de votre projet local. Dans ~/myproject, vous pouvez ensuite répertorier les pods du serveur Kubernetes distant en exécutant kubectl get pods --kubeconfig ./.kube/config.

Notez que lors de la copie des valeurs depuis le serveur Kubernetes distant, le simple kubectl config view ne sera pas suffisant car il n’affiche pas les secrets du fichier de configuration. Au lieu de cela, vous devez faire quelque chose comme cat ~/.kube/config ou utiliser scp pour obtenir le contenu complet du fichier.

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

6
toldjuuso

J'essayais de configurer kubectl sur un client différent de celui pour lequel j'ai créé le cluster kops. Vous ne savez pas si cela fonctionnera sur Azure, mais cela fonctionnera sur un cluster (kops) basé sur AWS:

kops/kubectl - comment importer un état créé sur un autre serveur?

0
Geremy

Comment avez-vous configuré votre cluster? Pour accéder au cluster à distance, vous avez besoin d'un fichier kubeconfig (il semble que vous n'en ayez pas) et les scripts d'installation génèrent un fichier kubeconfig local dans le cadre du processus de déploiement du cluster (car sinon le cluster que vous venez de déployer n'est pas utilisable) . Si quelqu'un d'autre a déployé le cluster, vous devez suivre les instructions de la page à laquelle vous êtes lié pour obtenir une copie des informations d'identification du client requises pour se connecter au cluster.

0
Robert Bailey

La configuration d’Azure n’expose que les ports ssh de manière externe . Cela se trouve sous ./output/kube_xxxxxxxxxxxssh_conf Ce que j’ai fait est de faire passer le ssh par tunnel à la machine en ajoutant un tunnel de port ssh ...__ dans le fichier ci-dessus et sous la section "Host *", ajoutez une autre ligne comme celle ci-dessous:

LocalForward 8080 127.0.0.1:8080

qui mappe le port 8080 de ma machine locale (où kubectl recherche le contexte par défaut) sur le port 8080 de la machine distante où le maître écoute les appels de l'API . lorsque vous ouvrez ssh sur kube-00 comme le montre la documentation normale, vous pouvez maintenant le faire appels de votre kubectl local sans aucune configuration supplémentaire.

0
aofry