Qu'est-ce que le proxy Kubectl?

Qu'est-ce que le proxy Kubectl?
Un utilisateur en dehors d'un cluster Kubernetes peut utiliser le proxy du serveur API Kubernetes pour se connecter aux IP de cluster qui autrement ne seraient pas disponibles. Ceci, par exemple, permet d'accéder à un service qui n'est disponible que dans le réseau du cluster. Entre l'utilisateur et le point de terminaison dans le cluster, l'apicerver fonctionne comme un proxy et un bastion.

Nous avons installé Ubuntu 20.04 sur notre système d'exploitation Linux pour exécuter les instructions dans Kubernetes. Vous pouvez le suivre. Vous devez en outre installer le cluster Minikube sur votre ordinateur pour exécuter Kubernetes sur Linux. Minikube facilite les commandes et programmes de test en vous permettant de le faire de manière méthodique. En conséquence, il offre la meilleure expérience d'apprentissage de Kubernetes pour les nouveaux arrivants. Initialement, le cluster Minikube doit être démarré. Puis, dans Ubuntu 20.04, accédez au terminal de ligne de commande nouvellement installé. Vous pouvez le faire en appuyant sur la touche de raccourci Ctrl + Alt + T ou en tapant «terminal» dans l'ubuntu 20.04 Boîte de recherche du système. L'une des techniques susmentionnées commencera le terminal. Le minikube sera lancé après cela. Tapez «Minikube Start» dans le terminal pour démarrer le minikube. Le cluster Kubernetes sera lancé après qu'une machine virtuelle capable d'exploiter un seul cluster de nœuds a été construite. Il est également compatible avec l'environnement Kubectl. Cela sera utilisé pour communiquer avec le cluster au début.

$ minikube start

Pour avoir accès à un cluster, vous devrez savoir où il est situé et les informations d'identification dont vous aurez besoin. Cela se fait généralement automatiquement lorsque vous suivez un guide de démarrage ou que quelqu'un d'autre configure le cluster et vous donne des informations d'identification et un emplacement. La commande de vue de configuration indique où Kubectl est conscient de l'emplacement et des informations d'identification.

$ Kubectl Config View

Comment accéder directement à l'API REST ?

Kubectl est chargé de trouver et d'authentifier l'apissionnaire. En mode proxy, exécutez Kubectl.

  • C'est une méthode recommandée.
  • L'emplacement de l'apicher enregistré est utilisé.
  • L'apicher est authentifié.
  • L'équilibrage et le basculement intelligents de la charge du client peuvent être réalisables à l'avenir.

Fournissez directement au client HTTP l'emplacement et les informations d'identification.

  • Une technique différente est possible.
  • Fonctionne avec un certain code client qui est confus lorsqu'un proxy est utilisé.
  • Pour garder le MITM, vous devrez importer un certificat racine dans votre navigateur.

Utilisation du proxy Kubectl

Cette commande configure kubectl pour fonctionner comme un proxy inversé. Il est chargé de localiser et d'authentifier l'apissionnaire. Supposons ce scénario:

$ kubectl proxy -port = 8080

Un exemple de la sortie est le suivant:

Sans l'utilisation du proxy kubectl

Pour acquérir le jeton de compte de service par défaut, exécutez Kubectl décrivez le secret… avec grep / coupe.

$ kubectl décrire le secret

API et l'accès programmatique

C'est pour annoncer que Kubernetes prend désormais en charge les bibliothèques de clients Go et Python. Le client GO et le client Python peuvent utiliser le même fichier kubeconfig que le Kubectl CLI pour localiser et authentifier avec l'apiserver.

Accéder à l'API à partir d'un pod

Lorsque vous contactez l'API à partir d'un pod, le processus de recherche et d'authentification de l'apiserver diffère légèrement. La meilleure façon de localiser l'apicher dans le pod est d'utiliser les Kubernetes.défaut.Nom DNS SVC. Il se résout en IP de service, et il est ensuite à son tour acheminé vers un apiteur.

L'utilisation d'un comptabilité de service pour s'authentifier auprès de l'apicher est suggérée. Après cela, un jeton pour ce compte de service est conservé dans l'arborescence du système de fichiers du conteneur dans ce pod. Un bundle de certificats est inséré dans l'arborescence du système de fichiers de chaque conteneur à / var / run / secrets / kubernetes.IO / ServiceAccount / CA.CRT, si disponible, et doit être utilisé pour vérifier le certificat de service de l'apissionnaire.

Enfin, dans chaque conteneur, l'espace de noms par défaut pour les activités d'API dans les noms de noms est stocké dans un fichier à / var / run / secrets / kubernetes.IO / ServiceAccount / Namespace. Voici quelques options pour se connecter à une API à partir d'un pod:

Exécutez le proxy Kubectl comme processus d'arrière-plan dans le conteneur ou comme un conteneur de side-car. Cela permet à d'autres processus dans l'un des conteneurs du pod à accéder à l'API de Kubernetes à l'aide de l'interface locale du pod.

Créez un client en combinant la bibliothèque client Go avec le code. Kubernetes avec inclusterConfig () Les fonctions newforconfig () et newforconfig () peuvent être utilisées pour configurer un cluster. Ils sont chargés de trouver et d'authentifier l'apicher.

Conclusion

Ici, nous avons fourni des directives sur le proxy Kubectl. Quelle est la vue de configuration Kubectl commune, et comment pouvez-vous accéder à l'API de repos avec et sans proxy kubectl. Nous avons également fourni des exemples pour vous aider à mieux comprendre le concept.