Utilisez un kubeconfig temporaire ou de longue durée pour authentifier kubectl auprès du serveur API de votre cluster.
Vous pouvez également gérer les clusters et les applications via la console ACK.
Dans le cadre du modèle de responsabilité partagée, protégez vos identifiants kubeconfig en les renouvelant régulièrement et en appliquant le principe du moindre privilège.
Choisir un type de kubeconfig
Choisissez un type de kubeconfig en fonction de la durée d'accès requise et de la manière dont votre client se connecte au cluster.
Selon la période de validité
|
Type |
Validité |
Cas d'usage idéal |
Sécurité |
|
Temporaire |
30 minutes à 3 jours (configurable) |
Opérations et maintenance quotidiennes, dépannage, pipelines CI/CD |
Risque réduit : expiration automatique après la période configurée |
|
De longue durée |
3 ans (par défaut) |
Systèmes automatisés, services de surveillance de longue durée |
Nécessite un renouvellement manuel avant l'expiration |
Selon la méthode d'accès
|
Type |
Quand l'utiliser |
Détails |
|
Accès privé |
Votre machine cliente se trouve dans le même Virtual Private Cloud (VPC) que le cluster |
Connexion via le réseau interne, offrant une latence plus faible et une sécurité renforcée |
|
Accès public |
Connexion depuis n'importe quelle machine disposant d'un accès Internet |
Expose le serveur API via une Elastic IP Address (EIP) ; adapté au développement local et aux opérations de maintenance à distance |
Une EIP associée entraîne des frais de paiement à l'utilisation .
Pour les clusters dédiés ACK avec accès public, vous pouvez également vous connecter au nœud maître via SSH pour récupérer le kubeconfig.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
kubectl installé, avec une version mineure compatible avec celle de Kubernetes sur le cluster (par exemple, kubectl 1,27–1,29 pour Kubernetes 1.28).
Un utilisateur RAM disposant des autorisations accordées aux niveaux ACK et cluster.
Obtenir un fichier kubeconfig et se connecter au cluster
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster, ou sur Details dans la colonne Actions.
Sur la page Cluster Information, sélectionnez l'onglet Connection Information. Choisissez un kubeconfig temporaire ou de longue durée. Pour un kubeconfig temporaire, définissez la période de validité.
Sélectionnez l'onglet Internal Access ou Public Access, puis cliquez sur Copy.
-
Collez le contenu dans le fichier
$HOME/.kube/configde votre client, puis enregistrez-le.Remarque : Si le répertoire ou le fichier n'existe pas, créez-le d'abord.
-
Vérifiez la connexion en listant tous les namespaces :
kubectl get namespacesRésultat attendu :
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
Gérer les identifiants kubeconfig
Renouveler les identifiants avant leur expiration
Un kubeconfig de longue durée est valide pendant 3 ans. Obtenez-en un nouveau depuis la console ACK ou via l'API DescribeClusterUserKubeconfig dans les 180 jours précédant l'expiration afin d'éviter toute interruption de service.
Le nouveau kubeconfig est valide pendant 3 ans. L'ancien reste valide jusqu'à sa date d'expiration initiale.
Révoquer des identifiants compromis
Si vous suspectez qu'un kubeconfig a été compromis, révoquez immédiatement les identifiants kubeconfig du cluster. Cette action invalide toutes les connexions existantes et génère un nouveau kubeconfig.
Nettoyer les autorisations des utilisateurs partis
Lorsqu'un utilisateur n'a plus besoin d'accès (par exemple, après la fin d'un projet ou le départ d'un employé), révoquez ses autorisations kubeconfig en masse en supprimant les fichiers kubeconfig ou en utilisant ack-ram-tool. Le système ne génère pas de nouveau kubeconfig après la révocation.
Pour restaurer des autorisations révoquées par erreur, utilisez la corbeille kubeconfig .
FAQ
Par défaut, kubectl utilise$HOME/.kube/config. Pour utiliser un autre fichier, définissez la variable d'environnementKUBECONFIGou passez l'option--kubeconfig. Dans les commandes ci-dessous, remplacezkubeconfigpar le chemin d'accès à votre fichier kubeconfig.
Comment trouver l'identité associée à un certificat kubeconfig ?
Extrayez le sujet du certificat :
# Extract the client certificate, decode it from base64,
# then use OpenSSL to display the Subject field
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -text | grep Subject:
Résultat attendu :
Subject: O=system:users, OU=, CN=1***-1673419473
O— Le groupe d'utilisateurs Kubernetes. Dans cet exemple,system:users.CN— L'identifiant de l'utilisateur. Dans cet exemple,1***-1673419473, où1***correspond à l'ID utilisateur Alibaba Cloud.
Comment vérifier la date d'expiration d'un certificat kubeconfig ?
Vérifiez l'expiration du certificat :
# Extract the client certificate, decode it from base64,
# then use OpenSSL to print the expiration date
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -enddate
Résultat attendu :
notAfter=Jan 10 06:44:34 2026 GMT
Dans cet exemple, le certificat expire le 10 janvier 2026.
Obtenez un nouveau kubeconfig depuis la console ou l'API dans les 180 jours précédant l'expiration, ou à tout moment après celle-ci.
Comment extraire le certificat client, la clé privée et l'URL du serveur API d'un kubeconfig ?
Extrayez le certificat, la clé et l'URL du serveur API :
# Extract and decode the client certificate to a PEM file
grep client-certificate-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-cert.pem
# Extract and decode the client private key to a PEM file
grep client-key-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-key.pem
# Extract the API server URL into a variable
APISERVER=$(grep server ./kubeconfig | awk -F ' ' '{print $2}')
Comment résoudre l'erreur « certificate is valid for » ?
Cette erreur survient lorsque vous associez une nouvelle adresse IP à l'instance Server Load Balancer (SLB) du serveur API. Les commandes kubectl ciblant la nouvelle IP échouent avec l'erreur Error while proxying request: x509: certificate is valid for xxx ou Unable to connect to the server: x509: certificate is valid for xxx.
La solution dépend du type de votre cluster :
Clusters gérés ACK : Ajoutez la nouvelle adresse IP au Subject Alternative Name (SAN) du certificat du serveur API.
-
Clusters dédiés ACK : Configurez kubectl pour ignorer la vérification TLS à l'aide de l'une des méthodes suivantes :
ImportantIgnorer la vérification TLS présente un risque de sécurité. N'utilisez pas cette méthode en production. Migrez vers des clusters ACK Pro, puis ajoutez la nouvelle adresse IP au SAN du certificat du serveur API.
-
Méthode 1 : Passez l'option
--insecure-skip-tls-verify:kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns -
Méthode 2 : Modifiez le fichier kubeconfig. Ajoutez
insecure-skip-tls-verify: trueet supprimez le champcertificate-authority-data:apiVersion: v1 clusters: - cluster: server: https://<IP>:6443 insecure-skip-tls-verify: true name: kubernetes contexts: ...
-
Puis-je obtenir la clé du certificat racine d'un cluster géré ACK pour générer moi-même un kubeconfig ?
Non. Les clusters gérés ACK n'exposent pas la clé du certificat racine. Obtenez le kubeconfig depuis la console ou via l'API DescribeClusterUserKubeconfig.
Références
Interrogez un kubeconfig par programmation avec l'API DescribeClusterUserKubeconfig.
Connectez-vous à un nœud du cluster. Consultez les méthodes de connexion à distance ECS.