Utilisez le webshell léger disponible dans la console SAE pour afficher et déboguer les conteneurs sans recourir à SSH. L'image de base d'un conteneur SAE est éphémère et conçue spécifiquement pour l'exécution de l'application ; il suffit donc qu'elle prenne en charge l'exécutable /bin/bash. Nous vous recommandons d'inclure tous les outils de maintenance nécessaires dans votre image afin de simplifier le dépannage.
Limitations
Le webshell ne prend pas en charge les images Windows.
Remarques relatives à l'utilisation
Vous êtes responsable de l'exécution du code et de l'environnement d'exécution du webshell.
Environnement réseau de l'application
Les applications SAE sont déployées dans un Virtual Private Cloud (VPC) créé par l'utilisateur et utilisent des namespaces pour isoler logiquement les appels de service au niveau de la couche intergicielle. Un namespace est associé à un vSwitch au sein du VPC. Un namespace ne peut être lié qu'à un seul vSwitch, mais un vSwitch peut prendre en charge plusieurs namespaces. Les applications situées dans différents VPC ne peuvent pas communiquer entre elles, car les adresses IP des VPC sont privées. Les applications appartenant à différents namespaces sont isolées les unes des autres pour des services tels que la découverte de services et la distribution de configurations.
Pour plus d'informations sur les principes et les détails du produit VPC, consultez la rubrique Fonctionnement.
Les conteneurs SAE ne peuvent pas accéder directement aux services situés en dehors de leur VPC, à l'exception des services Alibaba Cloud tels qu'Object Storage Service (OSS) et Container Registry. Sans configuration supplémentaire, un conteneur s'exécute dans un réseau isolé et n'est pas accessible depuis l'extérieur.
L'exemple suivant montre qu'un conteneur ne peut pas accéder à Internet.
[root@xxx:serverlesswar-12504560-a374-4471-80c7-d799d69ba3f7-xxx admin]# ping www.taobao.com
PING www.taobao.com.danuoyi.tbcache.com (xxx.xxx.xxx.xxx) xxx bytes of data.
^C
--- www.taobao.com.danuoyi.tbcache.com ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9198ms
Si un conteneur doit accéder à des services sur Internet, vous devez acheter une passerelle NAT et configurer une règle SNAT pour le vSwitch dans le VPC. Pour plus d'informations, consultez la rubrique Configurer une passerelle NAT pour permettre à une application SAE d'accéder à Internet.
Une règle SNAT permet aux instances sans adresse IP publique dans un VPC d'accéder à Internet via une Elastic IP Address (EIP) associée à une passerelle NAT. Pour plus d'informations, consultez la rubrique Produits orientés Internet.
Création d'une image
SAE propose une création et une gestion intégrées d'images basées sur Alibaba Cloud Container Registry. L'image de base est centos:7 ; elle est préconfigurée avec les paramètres de langue et d'encodage, le fuseau horaire et OpenJDK.
SAE n'intègre pas un ensemble étendu d'outils afin d'éviter de consommer des ressources d'exécution. Si vous avez besoin d'outils supplémentaires, créez une image personnalisée ou récupérez les outils depuis OSS selon vos besoins. Pour plus d'informations, consultez la rubrique Créer une image Java.
Ouvrir un webshell
Suivez les étapes ci-dessous pour effectuer des tâches de maintenance de base à l'aide du webshell :
Sur la page Liste des applications SAE, sélectionnez une région et un namespace en haut de la page, puis cliquez sur l'ID de l'application cible pour ouvrir la page des détails de l'application.
Dans la page Basic Information, cliquez sur l'onglet Instances.
Dans l'onglet Instances, section Default Group, repérez l'instance cible et cliquez sur Webshell dans la colonne Actions.
Facultatif : Une fois le webshell ouvert, cliquez sur l'icône
située dans le coin supérieur droit de la fenêtre pour passer en mode plein écran.-
Exécutez les commandes nécessaires dans la fenêtre du webshell pour afficher et déboguer votre conteneur.
Pour plus d'informations, consultez les rubriques Obtenir les métadonnées de l'instance et Diagnostiquer une application.
Obtenir les métadonnées de l'instance
Après avoir déployé une application dans SAE, vous pouvez obtenir les métadonnées de base de l'instance, notamment l'ID du groupe de sécurité, l'ID du VPC et l'ID du vSwitch.
|
Élément de métadonnée |
Description |
|
/etc/podinfo/sgId |
Chemin d'accès au fichier contenant les métadonnées de l'ID du groupe de sécurité. |
|
/etc/podinfo/vpcId |
Chemin d'accès au fichier contenant les métadonnées de l'ID du VPC. |
|
/etc/podinfo/vswitchId |
Chemin d'accès au fichier contenant les métadonnées de l'ID du vSwitch. Remarque
En cas de plusieurs vSwitch, les ID sont séparés par des virgules (,). |
Connectez-vous à la console SAE et exécutez les commandes suivantes dans la fenêtre du webshell pour vérifier les métadonnées relatives à l'ID du groupe de sécurité, à l'ID du VPC et à l'ID du vSwitch.
-
Exécutez la commande suivante pour accéder au répertoire
podinfo:cd /etc/podinfo/RemarqueSi le message d'erreur
can't cd to /etc/podinfo/s'affiche, Restart l'instance ou Deploy Application pour résoudre le problème. -
Exécutez la commande suivante pour afficher tous les fichiers contenant les métadonnées de l'instance :
lsSortie attendue :
sgId vpcId vswitchId -
Exécutez les commandes suivantes selon vos besoins pour vérifier les métadonnées correspondantes au sein de l'instance.
-
Obtenez l'ID du groupe de sécurité.
cat sgIdSortie attendue :
sg-2ze4ddm2rqgenvcx****sh-4.2# -
Obtenez l'ID du VPC.
cat vpcIdSortie attendue :
vpc-2zeqku2oevokwm66b****sh-4.2# -
Obtenez l'ID du vSwitch.
cat vswitchIdSortie attendue :
vsw-2zewmy4ynhljytzhu****sh-4.2#
-
Copier les commandes d'installation
Connectez-vous à la console SAE et suivez les étapes ci-dessous pour installer les commandes nécessaires dans la fenêtre du webshell.
Les commandes installées lors d'une session webshell sont perdues après la reconstruction du conteneur. Pour les commandes fréquemment utilisées, installez-les lors de la création de l'image.
Cliquez sur l'icône
située dans le coin supérieur droit de la fenêtre du webshell.-
Dans la boîte de dialogue Copy Command qui s'affiche, sélectionnez les composants à installer selon vos besoins, prévisualisez la commande, puis cliquez sur Copy.
Install openssh : OpenSSH est une implémentation libre et open source du protocole Secure Shell (SSH). OpenSSH fournit un démon côté serveur et des outils côté client pour chiffrer les données lors des sessions de contrôle à distance et de transfert de fichiers. En installant OpenSSH, vous pouvez utiliser des fonctionnalités de débogage à distance telles que la connexion SSH distante ainsi que les transferts de fichiers (uploads ou downloads) via SFTP et SCP pour déboguer temporairement une instance d'application SAE spécifique.
Install net-tools (netstat) : La commande netstat permet de surveiller l'état du réseau. Elle peut afficher des informations telles que les tables de routage, les connexions réseau actives et l'état de chaque périphérique d'interface réseau.
Install iroute (ss) : La commande Socket Statistics (ss) permet de récupérer les statistiques des sockets. Bien qu'elle renvoie des informations similaires à la commande netstat, la commande ss peut afficher des informations plus détaillées sur TCP et l'état des connexions plus rapidement.
Collez la commande copiée dans la fenêtre du webshell et appuyez sur Entrée pour l'exécuter.
Diagnostiquer une application
Vérifications de routine
Vous pouvez diagnostiquer une application SAE en effectuant des vérifications de routine, telles que la validation du processus, des threads et de l'intégrité de la machine virtuelle Java (JVM) pour une application Java.
-
Exécutez la commande suivante pour vérifier si le processus Java de l'application existe.
ps -ef | grep javaRemarqueUn conteneur utilise son processus principal pour démarrer une application. Si l'application s'arrête, le conteneur se termine et SAE le redémarre automatiquement afin d'éviter toute interruption de service.
Si le processus n'existe pas, exécutez la commande
dmesg | grep -i killpour rechercher les journaux liés aux erreurs de mémoire insuffisante (OOM).La présence de tels journaux indique que le processus de l'application a été arrêté. Vous devez examiner le fichier
hs_err_pid{PID}.logdans le répertoire de travail pour identifier la cause racine.
-
Pour l'analyse en ligne des applications Java, vous pouvez utiliser Arthas, un outil de diagnostic open source développé par Alibaba. Nous vous recommandons d'intégrer Arthas à votre image de test. Il affiche en temps réel l'état de chargement des classes Java, ce qui facilite l'observation des paramètres d'entrée et de sortie des méthodes, des variables d'environnement, etc.
-
Connectez-vous à Internet.
Pour plus d'informations, consultez la rubrique Configurer une passerelle NAT pour permettre à une application SAE d'accéder à Internet.
-
Exécutez la commande suivante pour télécharger Arthas.
sudo wget https://alibaba.github.io/arthas/arthas-boot.jar -
Exécutez la commande suivante pour démarrer Arthas.
sudo java -jar arthas-boot.jar
-
Télécharger et importer des journaux
Si les vérifications de routine s'avèrent insuffisantes, importez les journaux depuis le conteneur vers le cloud et téléchargez-les sur votre machine locale pour une analyse approfondie.
Pour les fichiers d'une taille maximale de 10 Mo, utilisez les fonctionnalités de transfert de fichiers intégrées au webshell. Pour plus d'informations, consultez la rubrique Utiliser un webshell pour importer et télécharger des fichiers.
Pour les fichiers supérieurs à 10 Mo : Vous pouvez utiliser Alibaba Cloud OSS. Le service OSS est accessible depuis tous les environnements réseau Alibaba Cloud ; vous pouvez donc l'utiliser pour importer et télécharger des journaux. Suivez les étapes ci-dessous :
-
Installez l'outil de ligne de commande OSS (ossutil) à l'intérieur du conteneur. Pour plus d'informations, consultez la rubrique Installer l'outil de ligne de commande OSS.
Cette rubrique utilise un système CentOS 64 bits à titre d'exemple. Si votre conteneur ne dispose pas d'accès à Internet, vous pouvez télécharger le fichier sur votre machine locale, l'importer vers OSS, puis obtenir le point de terminaison interne au VPC d'OSS pour télécharger le fichier depuis le conteneur.
-
Exécutez la commande suivante pour télécharger ossutil.
sudo wget http://gosspublic.alicdn.com/ossutil/1.5.0/ossutil64 -
Exécutez la commande suivante pour modifier les autorisations du fichier.
sudo chmod 755 ossutil64
-
-
Configurez l'outil de ligne de commande OSS avec le endpoint du VPC dans la région actuelle et l'AccessKey du compte qui recevra les fichiers importés. Ensuite, vérifiez un bucket existant pour confirmer que le service OSS est disponible.
RemarqueAssurez-vous qu'OSS est activé pour un compte Alibaba Cloud, qui ne doit pas nécessairement être le compte actuel.
Créez un bucket. Pour plus d'informations, consultez la rubrique Créer un bucket dans la console.
-
Exécutez la commande suivante pour créer un fichier de configuration afin de stocker les informations d'accès à OSS.
Suivez les invites pour configurer vos informations AccessKey et endpoint. Vous n'avez pas besoin de saisir de jeton STS.
./ossutil64 config -
Exécutez la commande suivante pour répertorier tous les buckets.
Vérifiez si le compte est disponible. En cas d'erreur, la configuration est incorrecte.
./ossutil64 lsExemple de sortie :
CreationTime Region StorageClass BucketName 2021-12-08 18:53:46 +0800 CST oss-cn-hangzhou Standard oss://test-bucket -
Exécutez la commande suivante pour créer un fichier journal d'exemple nommé sae-app.log.
echo "Hello" > sae-app.log -
Exécutez la commande suivante pour importer le fichier journal vers le bucket spécifié.
./ossutil64 cp sae-app.log {bucket-address}Exemple :
./ossutil64 cp sae-app.log oss://test-bucket
-
Vérifiez le résultat.
-
Méthode 1 : Exécutez la commande suivante pour afficher le fichier exemple importé.
./ossutil64 ls oss://test-bucketExemple de sortie :
LastModifiedTime Size(B) StorageClass ETAG ObjectName 2021-12-08 19:26:18 +0800 CST 6 Standard 09F7E02F1290BE211DA707A266F1**** oss://cri-55md3gmii09m****-chart/sae-app.log Object Number is: 1 0.047758(s) elapsed Méthode 2 : Recherchez votre fichier journal dans la console OSS ou à l'aide d'autres outils, téléchargez-le sur votre machine locale, puis utilisez les outils de votre choix pour l'analyser.
-