Aller au contenu

Configurer le proxy

La finalité de cette configuration est d'accéder à son cluster privé et y faire du kubectl.

Pour y arriver, il faut configurer le proxy afin qu'il puise faire le rebond sur la machine bastion.

  1. Dans le déploiement du cluster, il faudra configurer les réseaux autorisés à accéder à l'API Server Kubernetes (kubectl) du cluster GKE privé via le bloc "master_authorized_networks" Ceci permettra de restreindre les Ips ou plages IP (CIDR) qui peuvent accéder au Contrôle Plane, en particulier dans un cluster privé.

  2. Etant donné que les APIs google sont fermés, il faut passer par un proxy qui va les rediriger en privé, pour cela il nous faut configurer un proxy réseau pour le SDK gcloud comme suit :

  3. gcloud config set proxy/type http

  4. gcloud config set proxy/address 10.163.85.226 => (Bastion kestra)
  5. gcloud config set proxy/port 3128

Avant de faire ces commandes il faudra vérifier comment on est loggé (Se mettre owner pour avoir toutes les habilitations dans le iam).

  • gcloud config congigurations list
  • gcloud config congigurations describe default

  • se connecter à la machine bastion Ceci passe par le proxy sécurisé de Google (IAP) via HTTPS (PORT 443)

  • gcloud compute ssh --zone "europe-west1-d" --tunnel-through-iap => dans notre cas c'est "bastionkestra"

Sortir de la vm

  1. Modifier son kubecong Se connecter à la vm bastion en SSH via iap (sans IP publique)
  2. gcloud compute ssh --tunnel-through-iap --zone=europe-west1-d --ssh-flag="-4 -L8888:localhost:8888 -N -q -f"

  3. vim ~/.kube/config apiVersion: v1 clusters:

  4. cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVMVENDQ proxy-url: http://localhost:8888 => à rajouter server: https://vvvvvvvvvvvvvvvvvv () changer url du server par via la commande suivante : gcloud container clusters get-credentials --region europe-west1 --internal-ip

Après toutes ces étapes, il sera possible d'accéder au cluster en cli. - kubectl config get-contexts - kubectl config use-context - kubectl get namespace