Google surveille et gère à distance le matériel Google Distributed Cloud Connected. Pour ce faire, les ingénieurs Google disposent d'un accès Secure Shell (SSH) au matériel Distributed Cloud connecté. Si Google détecte un problème, un ingénieur Google vous contacte pour le résoudre. Si vous avez identifié un problème vous-même, contactez immédiatement l'assistance Google pour le diagnostiquer et le résoudre.
Connectivité des machines Distributed Cloud connecté
Cette section explique comment vérifier la connectivité Internet et Google Cloud de vos machines connectées Distributed Cloud à l'aide de l'explorateur de métriques de Cloud Monitoring.
Cette procédure utilise les métriques Monitoring suivantes :
Machine connectée (
/machine/connected) : indique si la machine est connectée à Google Cloud.Connectivité réseau (
/machine/network/connectivity) : indique si l'interface réseau principale de la machine est connectée à Internet.
Pour suivre les étapes de cette section, vous devez remplir les conditions préalables suivantes :
- Accès à la console Google Cloud et à votre projet Distributed Cloud connecté Google Cloud .
- Le rôle IAM Lecteur Monitoring, qui vous permet d'afficher les métriques Monitoring.
- (Facultatif) Valeur
machine_idde la machine Distributed Cloud connectée cible pour filtrer les résultats renvoyés.
Utiliser l'explorateur de métriques pour valider la connectivité des machines
Accédez à l'explorateur de métriques :
Dans la console Google Cloud , accédez à la section Monitoring.
Dans l'arborescence de navigation de gauche, cliquez sur Explorateur de métriques.
Sélectionnez le type de ressource cible :
Sur la page "Explorateur de métriques", accédez à la page Requêtes.
Utilisez la barre de recherche pour rechercher le type de ressource Machine. Vous pouvez également utiliser l'identifiant de ressource complet
edgecontainer.googleapis.com/Machine.Dans les résultats renvoyés, cliquez sur le type de ressource Machine.
Validez la connexion de la machine à Google Cloud :
Dans la section Métrique, recherchez la valeur
connected.Sélectionnez la métrique Machine connectée. Son chemin d'accès complet est
edgecontainer.googleapis.com/machine/connected.(Facultatif) Filtrez par valeur cible
machine_idà l'aide de la section Filtrer.Dans le graphique temporel qui s'affiche, vérifiez que la ligne Opérationnel reste à 100 % de manière continue. Si cette valeur est de 0 % ou Mauvaise santé à un moment donné, cela signifie que la machine a perdu la connectivité avec Google Cloud à l'heure indiquée.
Validez la connectivité Internet de la machine :
Dans la section Métrique, recherchez la valeur
connectivity.Sélectionnez la métrique Connectivité réseau. Son chemin d'accès complet est
edgecontainer.googleapis.com/machine/network/connectivity.(Facultatif) Filtrez par valeur cible
machine_idà l'aide de la section Filtrer.Dans le graphique temporel qui s'affiche, vérifiez que la ligne Opérationnel reste à 100 % de manière continue. Si cette valeur est de 0 % à un moment donné (Non sain), cela signifie que la machine a perdu sa connexion Internet à l'heure indiquée.
Comprendre les résultats de la validation
Le tableau suivant décrit les résultats renvoyés par l'explorateur de métriques.
| État de la machine | Diagnostic | Solution |
|---|---|---|
| Bon état La valeur de la métrique "Machine connectée" est 1La valeur de la métrique "Connectivité réseau" est 1 |
Fonctionnement normal. | Aucune. |
| Déconnecté La valeur de la métrique "Machine connectée" est 0La valeur de la métrique "Connectivité réseau" est 1 |
La machine est connectée à Internet, mais ne parvient pas à se connecter à Google Cloud. | Vérifiez vos [règles de pare-feu](distributed-cloud/connected/1.11.0/docs/requirements#connected_management_and_monitoring_traffic) pour les services Google et les points de terminaison d'API. Vérifiez que les agents connectés Distributed Cloud sont en cours d'exécution sur la machine. |
| Isolé La valeur de la métrique "Machine connectée" est 0La valeur de la métrique "Connectivité réseau" est 0 |
L'appareil n'est pas connecté à Internet. | Vérifiez le câblage de l'alimentation et du réseau, la configuration du réseau local et l'état des voyants de la machine. Vérifiez la configuration de votre VLAN et de votre routage. |
| Intermittent La valeur de la métrique "Machine connectée" alterne entre 0 et 1La valeur de la métrique "Connectivité réseau" alterne entre 0 et 1 |
Connexion réseau instable, perte de paquets ou latence excessive. | Vérifiez si votre réseau local est congestionné ou si le matériel est défectueux. |
Si vous constatez des valeurs 0 soutenues pour l'une ou l'autre métrique, suivez les étapes de dépannage décrites dans le tableau pour les résoudre. Si le problème persiste, contactez l'assistance Google en indiquant la valeur machine_id de la machine concernée et l'heure de l'indisponibilité.
Sessions BGP corrompues dans les ressources Cloud Router utilisées par les connexions VPN
Les connexions Distributed Cloud VPN s'appuient sur des sessions BGP établies et gérées par leurs ressources Cloud Router correspondantes pour annoncer les routes entre le cluster Distributed Cloud connecté et Google Cloud. Si vous modifiez la configuration d'une ressource Cloud Router associée à une connexion VPN Distributed Cloud, cette connexion peut cesser de fonctionner.
Pour récupérer la configuration de session BGP corrompue dans le routeur Cloud Router concerné, procédez comme suit :
Dans la console Google Cloud , obtenez le nom de la session BGP corrompue. Exemple :
INTERFACE=anthos-mcc-34987234Obtenez les adresses IP BGP du pair et du routeur cloud pour la session BGP corrompue, ainsi que le numéro ASN du pair utilisé par la connexion Distributed Cloud VPN concernée. Exemple :
GDCE_BGP_IP=168.254.208.74 CLOUD_ROUTER_BGP_IP=168.254.208.73 PEER_ASN=65506Si vous avez supprimé la session BGP, obtenez ces informations à partir du cluster connecté Distributed Cloud :
Obtenez les identifiants du cluster :
gcloud edge-cloud container clusters get-credentials CLUSTER_ID \ --location REGION \ --project PROJECT_ID
Remplacez les éléments suivants :
CLUSTER_ID: nom du cluster cible.REGION: région Google Cloud dans laquelle le cluster cible est créé.PROJECT_ID: ID du projet Google Cloud cible.
Obtenez la configuration de la ressource
MultiClusterConnectivityConfig:kubectl get multiclusterconnectivityconfig -A
La commande renvoie un résultat semblable à celui-ci :
NAMESPACE NAME LOCAL ASN PEER ASN kube-system MultiClusterConfig1 65505 65506 ```Obtenez l'adresse IP BGP du pair, l'adresse IP du routeur cloud et le numéro ASN de la session BGP :
kubectl describe multiclusterconnectivityconfig -n kube-system MCC_CONFIG_NAME
Remplacez
MCC_CONFIG_NAMEpar le nom de l'MultiClusterConfigResourceque vous avez obtenu à l'étape précédente.La commande renvoie un résultat semblable à celui-ci :
Spec: Asns: Peer: 65505 Self: 65506 # GDCE ASN Tunnels: Ike Key: Name: MCC_CONFIG_NAME-0 Namespace: kube-system Peer: Bgp IP: 169.254.208.73 # Cloud Router BGP IP Private IP: 34.157.98.148 Public IP: 34.157.98.148 Self: Bgp IP: 169.254.208.74 # GDCE BGP IP Private IP: 10.100.29.49 Public IP: 208.117.254.68 ```
Dans la console Google Cloud , obtenez le nom, la région et le nom du projetGoogle Cloud du tunnel VPN corrompu. Exemple :
VPN_TUNNEL=VPNTunnel1 REGION=US-East1 VPC_PROJECT_ID=VPC-Project-1Supprimez la session BGP corrompue de la configuration du routeur Cloud Router.
Créez une interface Cloud Router :
gcloud compute routers add-interface --interface-name=INTERFACE_NAME \ --vpn-tunnel=TUNNEL_NAME \ --ip-address=ROUTER_BGP_IP \ --project=VPC_PROJECT_ID \ --region=REGION \ --mask-length=30
Remplacez les éléments suivants :
INTERFACE_NAME: nom descriptif qui identifie de manière unique cette interface.TUNNEL_NAME: nom du tunnel VPN que vous avez obtenu à l'étape précédente.ROUTER_BGP_IP: adresse IP BGP du routeur Cloud Router que vous avez obtenue précédemment dans cette procédure.VPC_PROJECT_ID: ID du projetGoogle Cloud VPC cible.REGION: Google Cloud région dans laquelle le projet Google Cloud VPC cible a été créé.
Créez le pair BGP :
gcloud compute routers add-bgp-peer --interface=INTERFACE_NAME \ --peer-name=TUNNEL_NAME \ --region REGION \ --project=VPC_PROJECT_ID \ --peer-ip-address=GDCE_BGP_IP \ --peer-asn=GDCE_BGP_ASN \ --advertised-route-priority=100 \ --advertisement-mode=DEFAULT
Remplacez les éléments suivants :
INTERFACE_NAME: nom de l'interface que vous avez créée à l'étape précédente.TUNNEL_NAME: nom du tunnel VPN que vous avez utilisé pour créer l'interface à l'étape précédente.REGION: région Google Cloud dans laquelle le projet Google Cloud VPC cible est créé.VPC_PROJECT_ID: ID du projetGoogle Cloud VPC cible.GDCE_BGP_IP: adresse IP BGP du pair Distributed Cloud que vous avez obtenue précédemment dans cette procédure.GDCE_BGP_ASN: numéro ASN BGP du pair Distributed Cloud que vous avez obtenu précédemment dans cette procédure.
À ce stade, la session BGP est de nouveau opérationnelle.
Machines virtuelles bloquées à l'état Pending
Une charge de travail de machine virtuelle peut rester bloquée à l'état Pending et ne pas être planifiée sur un nœud si l'un des événements suivants se produit :
- Distributed Cloud connected ne peut pas allouer les ressources demandées (temps CPU, mémoire ou espace disque, par exemple) à la machine virtuelle.
- La configuration de la machine virtuelle présente un défaut.
- Le stockage de la machine virtuelle présente un défaut.
- Le nœud cible est corrompu.
Pour résoudre ce problème, procédez comme suit :
Obtenez les identifiants du cluster, comme décrit dans Obtenir les identifiants d'un cluster.
Obtenez des informations sur la machine virtuelle concernée :
kubectl describe virtualmachine VM_NAME -n NAMESPACE
Remplacez les éléments suivants :
VM_NAME: nom de la machine virtuelle cible.NAMESPACE: espace de noms de la machine virtuelle cible.
La commande renvoie un résultat semblable à celui-ci :
Status: ... State: Pending ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreate 15m virtualmachine-controller Created virtual machine my-stuck-vm Warning DiskProvisioningFailed 14m virtualmachine-controller Failed to provision disk: DataVolume my-stuck-vm-data-disk not ready Warning PVCNotBound 14m virtualmachine-controller PersistentVolumeClaim my-stuck-vm-data-disk is in phase Pending Warning VMINotCreated 10m virtualmachine-controller VirtualMachineInstance cannot be created: dependencies not readyLe résultat de la commande contient des messages qui peuvent indiquer des contraintes de ressources, des échecs de planification, des problèmes de stockage et d'autres problèmes.
Examinez le résultat pour déterminer les causes de l'échec de la planification, comme expliqué dans les sections suivantes.
Ressources insuffisantes
Vous pouvez voir un message indiquant des ressources insuffisantes, comme le processeur, la mémoire ou l'espace disque. Exemple :
5/8 nodes are available: 3 Insufficient memory, 3 Insufficient CPU.
Pour résoudre ce problème, vérifiez les ressources allouées aux machines virtuelles concernées et aux autres charges de travail planifiées sur le nœud, puis procédez comme suit en fonction de vos besoins professionnels :
- Réduisez l'échelle des autres charges de travail planifiées sur le nœud.
- Réduisez la quantité de ressources allouées à la machine virtuelle concernée.
- Ajoutez d'autres machines au cluster concerné.
Nœuds rejetés
Il est possible qu'un message indique que le nœud cible est contaminé. Exemple :
5/8 nodes are available: 3 node(s) had taint {<taint-key>:<taint-value>}, that the pod didn't tolerate.
Pour résoudre ce problème, procédez comme suit :
Exécutez la commande suivante pour vérifier les rejets sur le nœud :
kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
La commande renvoie un résultat semblable à celui-ci :
NAME TAINTS node-name-1 [map[effect:PreferNoSchedule key:node-role.kubernetes.io/master] map[effect:PreferNoSchedule key:node-role.kubernetes.io/control-plane]] node-name-2 <none>Effectuez l'une des opérations suivantes :
- Pour les rejets inattendus, supprimez-les comme décrit dans Rejets et tolérances.
- Pour les rejets attendus, ajoutez les tolérances correspondantes à la configuration de la machine virtuelle, comme décrit dans Rejets et tolérances.
Défaillances de stockage
Un message peut s'afficher pour indiquer un problème de stockage de la machine virtuelle. Exemple :
5/8 nodes are available: 3 node(s) had volume node affinity conflict, 3 node(s) had unbound immediate PersistentVolumeClaims.
Ce message peut indiquer que le volume persistant correspondant ne parvient pas à être monté sur le nœud cible.
Pour résoudre ce problème, procédez comme suit :
Utilisez la commande suivante pour obtenir l'état des revendications de volume persistant (PVC) dans l'espace de noms de la machine virtuelle concernée :
kubectl get pvc -n NAMESPACE
Remplacez
NAMESPACEpar le nom de l'espace de noms cible.La commande renvoie un résultat semblable à celui-ci :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE windows-robin-disk-0 Bound pvc-b1a1d264-84bf-4e58-857d-f37f629d5082 25Gi RWX robin-block-immediate 30h windows-robin-disk-1 Bound pvc-0130b9a8-7fed-4df0-8226-d79273792a16 25Gi RWX robin-block-immediate 30h windows-robin-vm-0-restored-windows-robin-disk-0 Pending gce-pd-gkebackup-in 26mVérifiez que le PVC correspondant a l'état
Bound. Si l'état estPending, cela signifie que le sous-système de stockage n'a pas réussi à provisionner le volume. Dans ce cas, vous devez résoudre les problèmes de configuration du sous-système de stockage et vous assurer que leStorageClassapproprié est disponible.