Esta página está destinada a operadores de infraestructura o administradores de plataformas.
En esta página, se describe cómo usar la herramienta de línea de comandos de actl
en la ejecución de Anthos en modo desconectado para diagnosticar problemas con clústeres. El comando diagnose
genera un archivo de almacenamiento que contiene una colección de registros que capturan el estado del clúster.
Introducción
Puedes capturar el estado del clúster de administrador o de usuario con el comando actl diagnose
.
La información de diagnóstico puede ayudarte a descubrir problemas y depurar tus implementaciones de manera más eficaz. El comando captura todos los archivos de configuración de clúster y nodo relevantes para el alcance definido y, luego, empaqueta la información en un solo archivo tar. Las marcas del comando te permiten elegir el alcance de diagnóstico del comando.
actl diagnose
Usa el comando actl diagnose
para solucionar problemas con los clústeres. Este comando comprime el estado, la configuración y los registros de un clúster en un archivo tar. Según el tipo de clúster (de clúster de usuario o administrador) que se recopila, se recopila información diferente. La configuración predeterminada del comando captura la siguiente información sobre el clúster:
- Versión de Kubernetes
- Estado de los recursos de Kubernetes en los espacios de nombres de controladores de kube-system y APM: clúster, máquina, nodos, Services, Endpoints, ConfigMaps, ReplicaSets, CronJobs, Pods y los propietarios de esos Pods, incluidos Deployments, DaemonSets y StatefulSets
- El estado del plano de control del usuario si el clúster de destino es un clúster de usuario (el plano de control del clúster de usuario se ejecuta en el clúster de administrador).
- Los detalles sobre la configuración de cada nodo, incluidas las direcciones IP, las reglas de iptables, los puntos de activación, el sistema de archivos, las conexiones de red y los procesos en ejecución.
- Registros de contenedores del nodo del plano de control del clúster de administrador, cuando el servidor de la API de Kubernetes no está disponible.
- Información en el sistema de Istio, incluidos Pods, servicios, implementaciones, extremos, secretos, configmaps, registros actuales y anteriores de todos los componentes y el sidecar de Istio, y todos los artefactos de configuración de Istio.
- Información en el sincronizador de configuración, incluidas las opciones de configuración en los espacios de nombres relacionados con el sistema de configuración.
- Registros del comando
actl diagnose
Crea una instantánea a partir de una situación
El comando actl diagnose
admite seis situaciones. Si quieres especificar una situación, usa la marca --scenario
para recopilar instantáneas de cualquiera de las siguientes configuraciones:
- all: Incluye todas las situaciones predefinidas, incluidas las siguientes: auth, config-management, kubernetes, management-center, observability y service-mesh (predeterminado).
- auth
- config-management
- kubernetes
- management-center
- observabilidad
- service-mesh
Puedes usar cada una de las seis situaciones con el clúster de administrador o los clústeres de usuario. Para crear una instantánea de un clúster con toda la situación, haz lo siguiente:
Clúster de administrador
Si tienes las credenciales de kubeconfig del clúster de administrador y tienes acceso
para leer información de Cluster
, puedes ejecutar el siguiente comando a fin de tomar una instantánea con todos los casos:
actl diagnose \
--kubeconfig=ADMIN_CLUSTER_KUBECONFIG\
--cluster=CLUSTER_NAME\
--scenario=all
Reemplaza lo siguiente:
ADMIN_CLUSTER_KUBECONFIG
: Es el archivo kubeconfig para el clúster de administrador.CLUSTER_NAME
: el nombre del clúster Si no conoces el nombre del clúster, omite esta marca y se te solicitará que selecciones un clúster para la instantánea.
Clúster de usuario
Si solo tienes credenciales de kubeconfig en un clúster de usuario, puedes tomar una instantánea de ese clúster de usuario específico con el siguiente comando:
actl diagnose \
--kubeconfig=USER_CLUSTER_KUBECONFIG\
--scenario=all
Reemplaza USER_CLUSTER_KUBECONFIG
por el archivo kubeconfig del clúster de usuario.
El resultado incluye una lista de archivos y el nombre de un archivo comprimido.
Using ["all"] snapshot configuration...
? Choose a cluster (namespace/name) cluster-admin/admin
Taking snapshots in 10 thread(s)...
kubectlCommands/anthos-management-center-operator/kubectl_get_updateitems
kubectlCommands/kubectl_cluster-info
kubectlCommands/kubectl_version
kubectlCommands/anthos-management-center/kubectl_logs_git-server-0_--container_git-server_--since_24h0m0s
kubectlCommands/anthos-management-center/kubectl_get_deployments
...
nodes/10.200.0.5/files/lib/systemd/system/docker.service
nodes/10.200.0.4/files/lib/systemd/system/docker.service
...
istioCommands/istioctl_bug-report
Snapshot succeeded.
Snapshots saved in "[TAR_FILE_PATH]/[TAR_FILE_NAME].tar.gz".
Limita una instantánea a un período
Puedes usar la marca --log-since
para limitar la recopilación de registros a un período reciente. Por ejemplo, puedes recopilar los registros de los últimos dos días o las últimas tres horas. De forma predeterminada, diagnose
recopila registros de las últimas 24 horas. Esta marca solo es compatible con los registros de kubectl
.
Para limitar el período de recopilación de registros, sigue estos pasos:
Clúster de administrador
actl diagnose \
--kubeconfig=ADMIN_CLUSTER_KUBECONFIG \
--cluster=CLUSTER_NAME \
--scenario=all \
--log-since=DURATION
Clúster de usuario
actl diagnose \
--kubeconfig=USER_CLUSTER_KUBECONFIG \
--scenario=all \
--log-since=DURATION
Reemplaza DURATION
por un valor de tiempo, como 2d o 3h. La duración predeterminada es de 24 horas.
Realiza una ejecución de prueba de una instantánea
Puedes usar la marca --dry-run
para mostrar las acciones que se realizarán y la configuración de la instantánea.
Para realizar una prueba de validación en tu clúster de administrador, haz lo siguiente:
Clúster de administrador
actl diagnose \
--kubeconfig=ADMIN_CLUSTER_KUBECONFIG \
--cluster=CLUSTER_NAME \
--dry-run
Clúster de usuario
actl diagnose \
--kubeconfig=USER_CLUSTER_KUBECONFIG \
--dry-run
Personaliza una configuración de instantáneas
Si las seis situaciones no satisfacen tus necesidades, puedes crear una instantánea personalizada. Puedes generar una configuración, copiarla y pegarla en un archivo de configuración nuevo, o crear un archivo de configuración desde cero. Luego, puedes crear la instantánea desde el archivo de configuración personalizado.
Opción 1: Genera una configuración de una instantánea
Puedes generar una configuración de una instantánea para una situación determinada si pasas las marcas --scenario
y --dry-run
. Por ejemplo, a fin de ver la configuración de la instantánea para toda (predeterminado) la situación de un clúster, ingresa el siguiente comando:
actl diagnose \
--scenario=all \
--dry-run
Este es un ejemplo del resultado:
ExcludeWords:
- certificateAuthorityData
- password
IstioBugReport:
Enabled: true
KubectlCommands:
- Commands:
- kubectl get deployments
- kubectl get deployments -o yaml
- kubectl get pods
- kubectl get pods -o yaml
- kubectl get secret
- kubectl logs
- kubectl get gateways -o yaml
Namespaces:
- istio-system
NodeCommands:
- Commands:
- uptime
- df --all --inodes
- ip addr
- iptables-save --counters
- mount
- ip route list table all
- top -bn1
- docker info
- docker ps -a
- ps -edF
- ps -eo pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup
- conntrack --count
Nodes: []
NodeFiles:
- Files:
- /proc/sys/fs/file-nr
- /proc/sys/net/netfilter/nf_conntrack_max
- /lib/systemd/system/kubelet.service
- /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
- /lib/systemd/system/docker.service
- /etc/docker/daemon.json
Nodes: []
NomosBugReport:
Enabled: true
NumOfParallelThreads: 10
Puedes copiar y pegar el resultado de este comando desde la interfaz de línea de comandos en un archivo de configuración nuevo que crees, por ejemplo, myconfig.yaml
. Puedes editar los siguientes valores:
ExcludeWords
: lista de palabras que se excluirán de la instantánea (distinción entre mayúsculas y minúsculas). Las líneas que contienen estas palabras se quitan de los resultados de la instantánea. “password” siempre se excluye, incluso si lo especificas.IstioBugReport
: una marca para habilitar la instantáneaistioctl bug-report
KubectlCommands
: lista de comandos dekubectl
que se ejecutarán. Los comandos se ejecutan en los espacios de nombres correspondientes. En los comandoskubectl logs
, todos los Pods y los contenedores de los espacios de nombres correspondientes se agregan de forma automática. Las expresiones regulares son compatibles con la especificación de espacios de nombres. Si no especificas un espacio de nombres, se supone que usas el espacio de nombresdefault
.NodeCommands
: lista de comandos que se ejecutarán en los nodos correspondientes. Los resultados se guardan. Cuando no se especifica ningún nodo, se consideran todos los nodos del clúster de destino.NodeFiles
: lista de archivos que se deben recopilar de los nodos correspondientes. Se guardan los archivos. Cuando no se especifica ningún nodo, se consideran todos los nodos del clúster de destino.NomosBugReport
: una marca para habilitar la instantáneanomos bugreport
NumOfParallelThreads
: cantidad de subprocesos paralelos que se usan para tomar instantáneas.
Opción 2: Define de forma manual un archivo de configuración de instantánea personalizado
Crea un archivo YAML con los parámetros de instantánea que desees, por ejemplo:
ExcludeWords:
- certificateAuthorityData
- password
NumOfParallelThreads: 10
KubectlCommands:
- Commands:
- kubectl get deployments
- kubectl get deployments -o yaml
- kubectl get pods
- kubectl get pods -o yaml
- kubectl get secret
- kubectl logs
- kubectl get gateways -o yaml
Namespaces:
- istio-system
Crea una instantánea mediante la configuración de instantáneas personalizadas
Pasa tu archivo de configuración de instantáneas personalizado con la marca --snapshot-config
:
Clúster de administrador
actl diagnose \
--kubeconfig=ADMIN_CLUSTER_KUBECONFIG \
--cluster=CLUSTER_NAME \
--snapshot-config=SNAPSHOT_CONFIG_FILE
Clúster de usuario
actl diagnose \
--kubeconfig=USER_CLUSTER_KUBECONFIG \
--snapshot-config=SNAPSHOT_CONFIG_FILE
Reemplaza SNAPSHOT_CONFIG_FILE
por el nombre de tu archivo de configuración de instantáneas personalizado, por ejemplo myconfig.yaml
.
Revisa el contenido de la instantánea
Para revisar el contenido del archivo tar, extráelo con el siguiente comando:
tar -zxf TAR_FILE_PATHTAR_FILENAME.tar.gz --directory EXTRACTION_DIRECTORY_NAME
Revisa el contenido del archivo tar antes de adjuntarlo en tus interacciones con asistencia.
¿Qué sigue?
- Obtén información sobre problemas conocidos.