Débogage des problèmes courants de l'interface de ligne de commande avec les clusters
Cloud privé virtuel Infrastructure classique
Consultez les raisons communes suivantes pour les problèmes de connexion CLI ou les échecs de commande :
Le pare-feu empêche l'exécution de commandes via la ligne de commande
Lorsque vous exécutez des commandes ibmcloud, kubectl, oc ou calicoctl depuis l'interface de ligne de commande, ces commandes échouent.
Des règles réseau d'entreprise empêchent peut-être l'accès depuis votre système local à des noeuds finaux publics via des proxys ou des pare-feux.
Autorisez l'accès TCP afin que les commandes CLI fonctionnent.
Cette tâche requiert le rôle d'accès à la plate-forme IAM de l'administrateur IBM Cloud pour le cluster.
Les commandes kubectl ou oc ne fonctionnent pas
Lorsque vous exécutez les commandes kubectl ou oc sur votre cluster, elles échouent avec un message d'erreur similaire à l'exemple suivant.
No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"
Votre version de kubectl est différente de la version du cluster.
Kubernetes ne prend pas en charge kubectl les versions des clients qui sont éloignées de 2 versions ou plus de la version du serveur
(n +/- 2). Si vous utilisez un cluster de communauté Kubernetes, il se peut également que vous disposiez de la version Red Hat OpenShift de kubectl, qui ne fonctionne pas avec les clusters de communauté Kubernetes.
Pour vérifier votre version client de kubectl par rapport à la version du serveur de cluster, exécutez la commande oc version --short.
Installez la version de l'interface de ligne de commande qui correspond à la version de votre cluster.
Si vous avez plusieurs clusters avec des versions différentes ou des plateformes de conteneurs différentes telles que Red Hat OpenShift, téléchargez chaque fichier binaire de la version kubectl dans un répertoire séparé. Ensuite,
vous pouvez configurer un alias dans votre profil d'interface de ligne de commande locale (CLI) pour qu'il pointe vers le répertoire de fichiers binaires kubectl qui correspond à la version kubectl du cluster que
vous souhaitez utiliser, ou vous pouvez utiliser un outil tel que brew switch kubernetes-cli <major.minor>.
Dépassement de délai lors d'une tentative de connexion à un pod
Vous essayez de vous connecter à un pod, par exemple avec la commande oc exec ou en obtenant les journaux avec la commande oc logs. Le pod est sain, mais un message d'erreur similaire à l'exemple suivant s'affiche.
Error from server: Get https://<10.xxx.xx.xxx>:<port>/<address>: dial tcp <10.xxx.xx.xxx>:<port>: connect: connection timed out
Le serveur VPN connaît des problèmes de configuration qui l'empêchent d'accéder au pod à partir de son adresse interne.
Avant de commencer : accédez à votre cluster Red Hat OpenShift.
- Vérifiez si des mises à jour de cluster et de noeud worker sont disponibles en affichant les détails de votre cluster et de vos noeuds worker dans la console ou en exécutant une commande
cluster lsouworker ls. Dans l'affirmative, procédez à la mise à jour de votre cluster et de vos noeuds worker à la dernière version. - Redémarrez le pod VPN en le supprimant. Un autre pod VPN est planifié. Lorsque son statut (STATUS) indique qu'il est en cours d'exécution (Running), essayez de vous connecter au pod auquel vous ne pouviez
pas vous connecter auparavant.
oc delete pod -n kube-system -l app=vpn
erreur 500 en essayant de se connecter à un cluster Red Hat OpenShift via oc login
Lorsque vous essayez de vous connecter à un cluster Red Hat OpenShift via oc login pour la première fois et que vous voyez un message d'erreur similaire à l'exemple suivant.
$ oc login SERVER -u apikey -p <APIKEY>
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y
Error from server (InternalError): Internal error occurred: unexpected response: 500
Certaines modifications récentes apportées au rôle utilisateur IAM n'ont pas encore été synchronisées avec le cluster Red Hat OpenShift.
Synchronisez les informations utilisateur IAM sur le cluster Red Hat OpenShift. Une fois la synchronisation initiale de l'utilisateur effectuée, une synchronisation de contrôle d'accès basé sur les rôles (RBAC) supplémentaire doit se produire automatiquement.
Avant de commencer :
Accédez à votre cluster Red Hat OpenShift.
Pour synchroniser les informations IAM pour l'utilisateur, vous disposez de 2 options :
- Connectez-vous à votre cluster depuis la console Red Hat OpenShift.
- Définissez votre contexte de ligne de commande pour le cluster en exécutant la commande
ibmcloud oc cluster config --cluster CLUSTER.
Si vous utilisez une clé d'interface de programmation pour un ID fonctionnel ou un autre utilisateur, connectez-vous en tant qu'utilisateur correct.
Une fois que l'utilisateur affecté a terminé la synchronisation IAM, l'administrateur de cluster peut vérifier que l'utilisateur existe dans le cluster en répertoriant les utilisateurs à l'aide de la commande oc get users.
Projets manquants ou échec des commandes oc et kubectl
Cloud privé virtuel Infrastructure classique
Vous ne voyez pas tous les projets auxquels vous avez accès. Lorsque vous tentez d'exécuter des commandes oc ou kubectl, un message d'erreur semblable à celui présenté ci-après s'affiche.
No resources found.
Error from server (Forbidden): <resource> is forbidden: User "IAM#user@email.com" can't list <resources> at the cluster scope: no RBAC policy matched
Vous devez télécharger les fichiers de configuration admin pour votre cluster afin d'exécuter les commandes qui requièrent le rôle de cluster cluster-admin.
Exécutez ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin et réessayez.