Résolvez les problèmes d'accès aux clusters depuis la console, tels que les erreurs de requête vers l'API server, les échecs d'accès aux journaux des pods et les autorisations RBAC de cluster manquantes.
Erreurs de requête vers l'API server du cluster : ErrorQueryClusterNamespace ou APIServer.500
Symptôme
Lorsque vous accédez aux ressources du cluster dans la console, le message d'erreur « An exception occurred with the request to the cluster's API server » s'affiche avec le code d'erreur ErrorQueryClusterNamespace ou APIServer.500. La console de gestion du cluster affiche une boîte de dialogue d'erreur contenant le message An exception occurred with the request to the cluster's API server, le code d'erreur ErrorQueryClusterNamespace, les détails failed to query access namespace for user, l'URL de la requête https://192.168.xxx:10885/api/v1/namespaces?limit=300 et l'erreur context deadline exceeded (Client.Timeout exceeded while awaiting headers).
Cause
Une configuration anormale ou un état défectueux de l'équilibreur de charge de l'API server interrompt la connectivité entre le plan de contrôle Container Service et l'API server du cluster.
Solution
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. Dans le volet de navigation de gauche, cliquez sur Cluster Information.
-
Sous l'onglet Basic Information, cliquez sur l'ID d'instance SLB de l'API server pour ouvrir la console SLB.
Si l'interface utilisateur indique que the load balancer ID does not exist, l'équilibreur de charge de l'API server a été supprimé ou libéré et le cluster ne peut pas être récupéré. Consultez la rubrique Création d'un cluster ACK managé pour en recréer un.
Si l'instance existe, passez à l'étape suivante.
-
Vérifiez si le Status de l'équilibreur de charge est défini sur Running.
Dans le cas contraire, vérifiez si l'instance est impayée ou expirée. Si tel est le cas, renouvelez-la et activez-la. Consultez les rubriques Paiements en souffrance pour obtenir des détails sur la facturation SLB.
Si c'est le cas, passez à l'étape suivante.
-
Cliquez sur Listeners et vérifiez que les écouteurs TCP:6443 frontal et backend existent et que leur Status est défini sur Running.
-
Sinon, l'écouteur de l'équilibreur de charge de l'API server a été modifié.
Si l'écouteur est dans l'état Disable, sélectionnez-le, puis cliquez sur Enable.
-
Si l'écouteur n'existe pas, suivez la procédure ci-dessous.
Assurez-vous que tous les nœuds maîtres du cluster sont ajoutés au groupe de serveurs par défaut, puis créez un écouteur avec les paramètres frontend et backend définis sur TCP:6443. Définissez le backend sur le Default Server Group et activez l'écouteur. Pour plus de détails sur l'ajout d'un écouteur, consultez la rubrique Ajout d'un écouteur TCP.
Si c'est le cas, passez à l'étape suivante.
-
-
Vérifiez si le Health Check Status de l'écouteur est défini sur Healthy.
-
Dans le cas contraire, le backend de l'équilibreur de charge de l'API server est anormal. Effectuez le dépannage comme décrit ci-dessous.
Dans la console ACK, accédez à . Pour chaque nœud maître, cliquez sur son ID d'instance ECS pour ouvrir la console ECS et vérifiez que son statut est Running.
-
Dans la console ECS, connectez-vous à distance à chaque nœud maître et vérifiez que le conteneur de l'API Server est en cours d'exécution.
Pour vous connecter à un nœud maître, consultez la rubrique Méthodes de connexion.
-
Vérifiez l'état du conteneur de l'API server en fonction du runtime de conteneur utilisé.
Runtime Docker : exécutez
docker ps | grep kube-apiserver, puis utilisezdocker inspectpour vérifier l'état du conteneur à partir de la sortie.Runtime containerd : exécutez
crictl ps | grep kube-apiserver, puis utilisezcrictl inspectpour vérifier l'état du conteneur à partir de la sortie.
Si c'est le cas, passez à l'étape suivante.
-
Vérifiez si le contrôle d'accès est activé pour l'écouteur. Si le contrôle d'accès est activé, la liste d'autorisation de l'contrôle d'accès pour l'écouteur de l'équilibreur de charge de l'API server est mal configurée. Ajoutez le bloc d'adresses
100.104.0.0/16à la liste d'autorisation. Ce bloc correspond à la plage d'adresses source utilisée par le plan de contrôle ACK pour accéder à l'API server en interne.
**Erreurs de requête vers l'API server lors de l'accès aux journaux des pods**
Si d'autres ressources du cluster sont accessibles mais que l'accès aux journaux des pods échoue, suivez les étapes ci-dessous.
Vérifiez si le statut du pod est Running. Sinon, consultez la rubrique Dépannage des problèmes de pod.
Sur la page , identifiez le nœud hébergeant le pod et cliquez sur son ID d'instance ECS. Dans la console ECS, cliquez sur Security Group.
Examinez les règles du groupe de sécurité et assurez-vous que l'accès VPC entrant sur le port TCP 10250 est autorisé. Si ce n'est pas le cas, ajoutez une règle de groupe de sécurité.
Le compte ne dispose pas des autorisations RBAC de cluster nécessaires pour l'opération : ForbiddenQueryClusterNamespace ou APISERVER.403
Symptôme
Lorsque vous accédez à la console, le message d'erreur « The current account has not been granted the required cluster RBAC permissions for this operation » s'affiche avec le code d'erreur ForbiddenQueryClusterNamespace ou APISERVER.403. Lorsque vous interrogez les namespaces, une boîte de dialogue Error affiche le message « The current account has not been granted the required cluster RBAC permissions for this operation. Please contact the primary account or a permissions administrator for authorization ». L'erreur en anglais est Forbidden query namespaces avec le code d'erreur ForbiddenQueryClusterNamespace.
Cause
Votre compte ne dispose pas des autorisations RBAC de cluster requises.
Solution
Connectez-vous à la console ACK en tant que compte Alibaba Cloud ou administrateur. Dans le volet de navigation de gauche, choisissez Authorizations.
Sous l'onglet RAM Users, recherchez l'utilisateur concerné et cliquez sur Modify Permissions à côté du nom d'utilisateur.
Cliquez sur Add Permissions, sélectionnez le cluster, le namespace et les autorisations, puis cliquez sur Submit.
Le compte ne dispose pas des autorisations RAM nécessaires pour l'opération StatusForbidden
Symptôme
Lorsque vous accédez à la console, l'erreur « The current account is not granted the required RAM permissions for this operation » s'affiche avec le code d'erreur StatusForbidden. Dans la console ACK, une boîte de dialogue Error affiche le message « The current account is not granted the required RAM permissions for this operation. Please contact the master account or a RAM administrator for authorization. ». Le message d'erreur est RAM policy Forbidden for action cs:DescribeKubernetesVersionMetadata avec le code d'erreur StatusForbidden.
Cause
Votre compte ne dispose pas des autorisations RAM requises.
Solution
Connectez-vous à la console RAM Access Control en tant que compte Alibaba Cloud ou compte disposant d'autorisations RAM.
Dans la console RAM Access Control, cliquez sur Create Authorization et ajoutez l'autorisation requise, telle que cs:DescribeKubernetesVersionMetadata, en vous basant sur les informations CS affichées sur la page d'erreur. Consultez la rubrique Octroi d'autorisations sur les clusters et les ressources cloud via RAM.