Je veux que kubectl utilise un port local différent - pas le 22. Est-ce configurable? Est-ce quelque chose que je dois configurer dans ssh?
Je veux créer un tunnel ssh avec IAP d'abord et faire en sorte que kubectl l'utilise pour se connecter à un cluster privé.
Je crée le tunnel comme ceci:
gcloud compute start-iap-tunnel --project "monprojet" \
"nodex-default-pool-abc123-1xc8" 22 --local-host-port=localhost:2200
Maintenant, j'aimerais que kubectl l'utilise pour se connecter via le port local 2200
Je veux éviter d'avoir une VM bastion et simplement tirer parti de IAP.
J'ai essayé de définir HTTPS_PROXY mais cela ne semble pas fonctionner:
HTTPS_PROXY=localhost:2200 kubectl get pods
Impossible de se connecter au serveur : réponse HTTP mal formée "SSH-2.0-OpenSSH_8.5"
ÉDIT : J'ai également essayé d'ouvrir un tunnel vers le plan de contrôle mais il semble que GKE ne prend pas en charge IAP pour l'authentification?
PROJECT_ID=monprojet
ZONE=us-central1-b
REGION=us-central1
NETWORK=monreseau
MASTER_IP=$(gcloud container clusters describe mycluster --zone $ZONE --project $PROJECT_ID --format=json | jq .endpoint -r)
gcloud alpha compute start-iap-tunnel $MASTER_IP 443 --project $PROJECT_ID --network=$NETWORK --region=$REGION \
--local-host-port=localhost:4444
Test si la connexion du tunnel fonctionne.
ERREUR : (gcloud.alpha.compute.start-iap-tunnel) Lors de la vérification si une connexion peut être établie : Erreur lors de la connexion [4033: 'pas autorisé'].
Peut-être que IAP nécessite un nom DNS pour initier l'authentification google ou quelque chose comme ça? J'ai également essayé de me connecter simplement au nom du cluster lui-même, mais cela a renvoyé une erreur de connexion.