Solución de problemas

Conozca los pasos que pueden resultarle útiles al solucionar problemas al usar GKE en AWS.

Descripción general

Este tema se divide en las siguientes secciones:

Obteniendo información sobre su clúster

Esta sección explica cómo recuperar información sobre su instalación de GKE en AWS para solucionar problemas.

Obtención de información del clúster de gestión

Puede consultar a su servicio de administración para obtener información sobre sus clústeres de usuarios.

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Utilice kubectl get para recuperar la información de estado básica de un clúster.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSCluster
    

    La salida incluye el nombre de cada clúster, el estado actual, la antigüedad, la versión y el punto final.

    NAME        STATE          AGE     VERSION         ENDPOINT
    cluster-0   Provisioning   2m41s   1.25.5-gke.2100   gke-<var>endpoint</var>.elb.us-east-1.amazonaws.com
    

Puede recuperar más información sobre un clúster con kubectl describe .

env HTTPS_PROXY=http://localhost:8118 \
  kubectl describe AWSCluster cluster-0

Hay tres secciones principales en este resultado:

  • Spec enumera la configuración declarativa inicial del clúster.
  • Status contiene el estado del clúster y los recursos de AWS creados por el servicio de administración.
  • Events incluyen todas las acciones o errores recientes. Este registro es fundamental para depurar el clúster.

La salida se parece a la siguiente.

Name:         cluster-0
Namespace:    default
Kind:         AWSCluster
Metadata:
  Creation Timestamp:  0000-00-00T00:00:00Z
  ...
Spec:
 Control Plane:
    Etcd:
      Main Volume:
        Size GiB: 10
    Iam Instance Profile:  gke-node
    Instance Type:         t2.medium
    Key Name:              gke-key
    Root Volume:
      Size GiB: 10
    Subnet IDs:
      subnet-0000
    Version:  0.00.0-gke.00
  Networking:
    Pod Address CIDR Blocks:
      0.0.0.0/0
  ...
Status:
  Admin Cert Secret Name:           gke-0000-admin-cert
  API DNS Name:                     gke-0000-controlplane-0000.elb.region.amazonaws.com
  Control Plane Security Group ID:  sg-0000
  Gke Hub Membership Name:          projects/global/memberships/gke-0000-cluster
  Listener ARN:                     arn:aws:elasticloadbalancing:region:0000:listener/net/gke-0000
  Load Balancer Name:               gke-0000-controlplane
  Node Pool Security Group ID:      sg-0000
  Provisioning Info:
    Addons Installed:              false
    Gke Hub Membership Installed:  false
    Target Version:                0.00.0-gke.0
  Replica Status:
    Auto Scaling Group Name:  gke-0000-controlplane-0
    Etcd Main Volume ID:      vol-0000
    Launch Template Name:     gke-0000-controlplane-0-0.00.0-gke.0
    Network Interface ID:     eni-0000
    Private IP Address:       0.0.0.0
    Replica:                  0
    ...
  Root CA Secret Name:        gke-0000-root-ca
  State:                      Provisioning
  Target Group Name:          gke-0000-controlplane
Events:
  Type    Reason                      Age    From              Message
  ----    ------                      ----   ----              -------
  Normal  CreatedSecurityGroup        1m36s  cluster-operator  Created security group named "gke-0000"
  Normal  CreatedEtcdVolume           1m35s  cluster-operator  Created etcd volume on replica 0
  Normal  CreatedEtcdVolume           1m35s  cluster-operator  Created etcd volume on replica 2
  Normal  CreatedEtcdVolume           1m35s  cluster-operator  Created etcd volume on replica 1
  Normal  CreatedNetworkLoadBalancer  1m34s  cluster-operator  Created network load balancer named "gke-0000-controlplane"
  Normal  CreatedTargetGroup          1m34s  cluster-operator  Created target group named "gke-0000-controlplane"
  Normal  CreatedRootCASecret         1m34s  cluster-operator  Created root CA secret named "default/gke-0000-root-ca"
  Normal  CreatedGKEHubMembership     1m33s  cluster-operator  Created GKE Hub membership named "projects/global/memberships/gke-0000-cluster"
  Normal  CreatedNetworkInterface     1m30s  cluster-operator  Created network interface on replica 2

Obtener los ID de su clúster de usuarios

Para configurar ciertas funciones de GKE en AWS, es posible que necesite obtener los ID de su clúster de usuarios.

Para obtener su ID de clúster de usuarios de GKE en AWS, realice los siguientes pasos:

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Utilice kubectl get awscluster para recuperar los ID de su clúster.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get awscluster -o jsonpath={.items..status.clusterID}
    

    La salida contiene los ID de su clúster.

Eventos

Un evento es un mensaje adjunto a un objeto de Kubernetes. Los eventos describen acciones que afectan el estado del recurso. El servicio de administración adjunta eventos a los objetos AWSCluster y AWSNodePool . Los eventos proporcionan un registro de los pasos realizados para crear, actualizar, redimensionar o eliminar el clúster. Use kubectl get events para listar los eventos.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get events

Ejemplo de salida

LAST SEEN   TYPE     REASON                        OBJECT                   MESSAGE
27s         Normal   CreatingCluster               awscluster/cluster-0     Cluster version 1.25.5-gke.2100 is being created
24s         Normal   CreatedSecurityGroup          awscluster/cluster-0     Created security group named "gke-123456a7-controlplane"
24s         Normal   CreatedSecurityGroup          awscluster/cluster-0     Created security group named "gke-123456a7-nodepool"
23s         Normal   CreatedEtcdVolume             awscluster/cluster-0     Created etcd volume on replica 0
23s         Normal   CreatedEtcdVolume             awscluster/cluster-0     Created etcd volume on replica 1
23s         Normal   CreatedEtcdVolume             awscluster/cluster-0     Created etcd volume on replica 2
23s         Normal   CreatedNetworkLoadBalancer    awscluster/cluster-0     Created network load balancer named "gke-123456a7-controlplane"
23s         Normal   CreatedTargetGroup            awscluster/cluster-0     Created target group named "gke-123456a7-controlplane"
23s         Normal   CreatedRootCASecret           awscluster/cluster-0     Created root CA secret named "default/gke-123456a7-api-server-ca"
22s         Normal   CreatedGKEHubMembership       awscluster/cluster-0     Created GKE Hub membership named "projects/global/memberships/gke-123456a7-cluster"
20s         Normal   CreatedNetworkInterface       awscluster/cluster-0     Created network interface on replica 0
20s         Normal   CreatedNetworkInterface       awscluster/cluster-0     Created network interface on replica 1
20s         Normal   CreatedNetworkInterface       awscluster/cluster-0     Created network interface on replica 2
20s         Normal   CreatedAdminCertSecret        awscluster/cluster-0     Created admin certificate secret named "default/gke-123456a7-admin-cert"
27s         Normal   StartedNodePoolProvisioning   awsnodepool/pool-0       Started node pool provisioning
13s         Normal   CreatedAutoScalingGroup       awsnodepool/pool-0       Created auto scaling group named "gke-123456a7-nodepool-8b269fb0"

Registros del operador

Los eventos enumeran las acciones generales realizadas por el operador. Es posible que deba observar la actividad de nivel inferior, como los seguimientos de pila. El servicio de administración ejecuta un pod estático llamado gke-aws-cluster-operator . Esta aplicación es un operador que contiene la lógica principal de administración del clúster.

En los siguientes pasos, utilizará la herramienta crictl para examinar los registros de gke-aws-cluster-operator .

  1. Vaya al directorio con su configuración de GKE en AWS. Este directorio se creó al instalar el servicio de administración .

    cd anthos-aws

  2. Localice el DNS de la instancia de administración de EC2. Seleccione su versión de Terraform y ejecute los siguientes comandos:

    Terraform 0.12, 0.13

    export CLUSTER_ID=$(terraform output cluster_id)
    export MANAGEMENT_IP=$(aws ec2 describe-instances \
        --filters "Name=tag:Name,Values=$CLUSTER_ID-management-0" \
        --query "Reservations[*].Instances[*].PrivateIpAddress" \
        --output text)
    

    Terraform 0.14.3+

    export CLUSTER_ID=$(terraform output -raw cluster_id)
    export MANAGEMENT_IP=$(aws ec2 describe-instances \
        --filters "Name=tag:Name,Values=$CLUSTER_ID-management-0" \
        --query "Reservations[*].Instances[*].PrivateIpAddress" \
        --output text)
    
  3. Si está utilizando un host bastión, busque el DNS del host bastión.

    Terraform 0.12, 0.13

    export BASTION_DNS=$(terraform output bastion_dns_name)
    

    Terraform 0.14.3+

    export BASTION_DNS=$(terraform output -raw bastion_dns_name)
    
  4. Acceda a la instancia de administración mediante SSH. Elija si desea una conexión directa o usar un host bastión.

    Conexión directa

    ssh -i ~/.ssh/anthos-gke ubuntu@$MANAGEMENT_IP
    

    Bastión

    ssh -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS ubuntu@$MANAGEMENT_IP
    
  5. Obtenga el ID del contenedor del pod gke-aws-cluster-operator .

    export POD_ID=$(sudo crictl pods --name gke-aws-cluster-operator --quiet)
    export CONTAINER_ID=$(sudo crictl ps --pod $POD_ID --latest --quiet)
    
  6. Imprima los registros del pod.

    sudo crictl logs $CONTAINER_ID
    

Terraformar

El comando anthos-gke genera Terraform para aprovisionar un servicio de administración . Puedes usar el comando terraform state para listar la infraestructura administrada en el estado de Terraform.

terraform state list

Ejemplo de salida

module.gke_dedicated_vpc.module.gke_bastion.aws_security_group.this
module.gke_dedicated_vpc.module.gke_bastion_security_group_rules.aws_security_group_rule.allow_http_outbound
module.gke_dedicated_vpc.module.gke_bastion_security_group_rules.aws_security_group_rule.allow_https_outbound
module.gke_dedicated_vpc.module.gke_bastion_security_group_rules.aws_security_group_rule.allow_ssh_inbound
module.gke_dedicated_vpc.module.gke_bastion_security_group_rules.aws_security_group_rule.allow_ssh_outbound
module.gke_dedicated_vpc.module.gke_controlplane_iam_policies.data.aws_iam_policy_document.this
module.gke_dedicated_vpc.module.gke_controlplane_iam_policies.aws_iam_role_policy.this
module.gke_dedicated_vpc.module.gke_controlplane_iam_role.data.aws_iam_policy_document.assume_role_policy
module.gke_dedicated_vpc.module.gke_controlplane_iam_role.aws_iam_instance_profile.this
module.gke_dedicated_vpc.module.gke_controlplane_iam_role.aws_iam_role.this
module.gke_dedicated_vpc.module.gke_management.data.aws_ami.this
module.gke_dedicated_vpc.module.gke_management.data.aws_iam_policy_document.assume_role_policy
module.gke_dedicated_vpc.module.gke_management.data.aws_subnet.this[0]
module.gke_dedicated_vpc.module.gke_management.aws_autoscaling_group.this[0]
module.gke_dedicated_vpc.module.gke_management.aws_ebs_volume.main[0]
module.gke_dedicated_vpc.module.gke_management.aws_iam_instance_profile.this
module.gke_dedicated_vpc.module.gke_management.aws_iam_role.this
module.gke_dedicated_vpc.module.gke_management.aws_launch_template.this[0]
module.gke_dedicated_vpc.module.gke_management.aws_lb.this
module.gke_dedicated_vpc.module.gke_management.aws_lb_listener.this
module.gke_dedicated_vpc.module.gke_management.aws_lb_target_group.this
module.gke_dedicated_vpc.module.gke_management.aws_security_group.this
module.gke_dedicated_vpc.module.gke_management_iam_policies.data.aws_iam_policy_document.this
module.gke_dedicated_vpc.module.gke_management_iam_policies.aws_iam_role_policy.this
module.gke_dedicated_vpc.module.gke_management_security_group_rules.aws_security_group_rule.allow_cidr_https_inbound[0]
module.gke_dedicated_vpc.module.gke_management_security_group_rules.aws_security_group_rule.allow_http_outbound
module.gke_dedicated_vpc.module.gke_management_security_group_rules.aws_security_group_rule.allow_https_inbound[0]
module.gke_dedicated_vpc.module.gke_management_security_group_rules.aws_security_group_rule.allow_https_outbound
module.gke_dedicated_vpc.module.gke_management_security_group_rules.aws_security_group_rule.allow_ssh_inbound[0]
module.gke_dedicated_vpc.module.gke_nodepool_iam_policies.data.aws_iam_policy_document.this
module.gke_dedicated_vpc.module.gke_nodepool_iam_policies.aws_iam_role_policy.this
module.gke_dedicated_vpc.module.gke_nodepool_iam_role.data.aws_iam_policy_document.assume_role_policy
module.gke_dedicated_vpc.module.gke_nodepool_iam_role.aws_iam_instance_profile.this
module.gke_dedicated_vpc.module.gke_nodepool_iam_role.aws_iam_role.this
module.gke_dedicated_vpc.module.gke_vpc.aws_eip.nat[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_internet_gateway.this
module.gke_dedicated_vpc.module.gke_vpc.aws_nat_gateway.this[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_route.private_nat_gateway[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_route.public_internet_gateway
module.gke_dedicated_vpc.module.gke_vpc.aws_route_table.private[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_route_table.public
module.gke_dedicated_vpc.module.gke_vpc.aws_route_table_association.private[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_route_table_association.public[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_subnet.private[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_subnet.public[0]
module.gke_dedicated_vpc.module.gke_vpc.aws_vpc.this

Podemos analizar cualquier recurso con más detalle mediante el comando terraform state show . Por ejemplo, examinemos el balanceador de carga frente al servicio de administración.

terraform state show module.gke_dedicated_vpc.module.gke_management.aws_lb.this

Ejemplo de salida

resource "aws_lb" "this" {
    arn                              = "arn:aws:elasticloadbalancing:aws-region:aws-account:loadbalancer/net/gke-12345678-management/arn-id"
    arn_suffix                       = "net/gke-12345678-management/abcde1234"
    dns_name                         = "exampledns.elb.ca-central-1.amazonaws.com"
    enable_cross_zone_load_balancing = true
    enable_deletion_protection       = false
    id                               = "arn:aws:elasticloadbalancing:aws-region:aws-account:loadbalancer/net/gke-12345678-management/arn-id"
    internal                         = true
    ip_address_type                  = "ipv4"
    load_balancer_type               = "network"
    name                             = "gke-12345678-management"
    security_groups                  = []
    subnets                          = [
        "subnet-0f77f5a97beb42e6d",
    ]
    vpc_id                           = "vpc-0a123456789b"
    zone_id                          = "Z2EPGBW3API2WT"

    access_logs {
        enabled = false
    }

    subnet_mapping {
        subnet_id = "subnet-0f77f5a97beb42e6d"
    }
}

Pasos para la solución de problemas

En esta sección se enumeran los pasos específicos para la solución de problemas que puedan surgir con GKE en AWS.

Errores de Terraform

En esta sección se enumeran los errores que pueden surgir al configurar el servicio de administración con las herramientas de línea de comandos anthos-gke y terraform .

Sin proveedores de credenciales

Si recibe el siguiente error, confirme que tiene una versión de Terraform superior a la 0.12.28. Si no tiene una versión compatible de Terraform, descárguela e instálela.

Error: cannot determine availability zones: NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors

No se pudo consultar a los proveedores disponibles

Si recibe el siguiente error, es posible que haya actualizado su versión de Terraform.

exit status 1: Error: Failed to query available provider packages

Could not retrieve the list of available versions for provider hashicorp/aws:
locked provider registry.terraform.io/hashicorp/aws 2.70.0 does not match
configured version constraint 3.26.0; must use terraform init -upgrade to
allow selection of new versions

Para solucionar este error, elimine el archivo .terraform.lock.hcl de su directorio anthos-aws .

Token desconocido

Si recibe el siguiente error al crear un servicio de administración:

Error: error running 'terraform init -input=false -no-color' exit status 1:
There are some problems with the configuration, described below.

The Terraform configuration must be valid before initialization so that
Terraform can determine which modules and providers need to be installed.

Error: Error parsing /home/user/aws/main.tf: At 15:12: Unknown token:
15:12 IDENT var.region

Confirme que tiene una versión de Terraform superior a la v0.12.28. Si no tiene una versión compatible de Terraform, descárguela e instálela.

Dirección de proveedor heredado no válida

Si recibe el siguiente error, debe actualizar su binario de Terraform a través de cada versión menor en orden.

Error: error running 'terraform init -input=false -no-color'.
exit status 1: Error: Invalid legacy provider address

This configuration or its associated state refers to the unqualified provider
"aws".

You must complete the Terraform 0.13 upgrade process before upgrading to later
versions.

Por ejemplo, si desea actualizar Terraform de la versión 0.12.x a la 0.14.x, debe instalar temporalmente la versión 0.13.x. Después de instalar la versión 0.13.x, ejecute anthos-gke aws management init y anthos-gke aws management apply . A continuación, podrá actualizar a la versión 0.14.x.

No se puede conectar al host bastión

Si recibe el error bind [::1]:8118: Cannot assign requested address al intentar conectarse a su host bastión, es posible que no pueda conectarse mediante IPv4. Fuerce una conexión IPv4 con el siguiente comando:

./bastion-tunnel.sh -N -4

No se puede conectar al servidor

Si recibe el error Unable to connect to the server al intentar ejecutar un comando kubectl en su clúster de usuarios, verifique lo siguiente:

  • Todas sus subredes privadas tienen rutas entre ellas.
  • Sus subredes privadas tienen acceso a una puerta de enlace NAT de AWS.
  • Si está utilizando kubectl 1.21, cambie la variable HTTP_PROXY a HTTPS_PROXY .

Connect no puede acceder al proyecto

Durante algunas operaciones de conexión al registrar su clúster , es posible que observe un error similar al siguiente:

  ERROR: (gcloud.container.hub.memberships.register) failed to initialize Default Feature
  "authorizer", the fleet service account (service-PROJECT_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com) may not have access to your project
  

Para obtener más información, consulte la entrada La flota no puede acceder al proyecto en Solución de problemas de administración de múltiples clústeres.

Errores de permisos

Si recibe un error de autenticación al utilizar la herramienta de línea de comandos anthos-gke , por ejemplo:

oauth2: cannot fetch token: 400 Bad Request

Vuelva a autenticar su instalación de Google Cloud CLI con gcloud auth application-default login .

kubectl no puede conectarse a su clúster

Si recibe el siguiente error al intentar conectarse a su clúster con kubectl :

Error: could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
        For verbose messaging see aws.Config.CredentialsChainVerboseErrors

Solución

Es posible que sus credenciales de AWS CLI hayan expirado. Confirme que sean válidas con aws ec2 describe instances .

Regenere sus credenciales con aws configure . Si utiliza autenticación multifactor (MFA), regenere su token de AWS MFA .

Un AWSCluster permanece Provisioning

Si el estado de un clúster en kubectl get awsclusters o kubectl describe AWSCluster cluster-name no cambia desde Provisioning , verifique el valor del campo spec.controlPlane.hub.membershipName de su AWSCluster . El valor de este campo debe ser único.

kubectl get awsclusters

NAME                                             STATE          AGE   VERSION         ENDPOINT
awscluster.multicloud.cluster.gke.io/cluster-0   Provisioning   8h    1.25.5-gke.2100   gke-123456a7-controlplane-abcdefg12345.elb.us-east-1.amazonaws.com

Soluciones

Para solucionar el problema, pruebe los siguientes pasos:

Errores de TLS al conectarse a su clúster

Si recibe el siguiente error al conectarse a su clúster:

error dialing backend: remote error: tls: internal error

Compruebe que las opciones DHCP de su VPC de AWS no tengan un valor personalizado para domain-name . Cuando se configura un dominio personalizado, GKE en AWS no puede generar una solicitud de firma de certificado (CSR).

Solución

Para solucionar el problema, realice uno de los siguientes pasos:

  • Establezca enableDnsHostnames en falso en su VPC. Si crea una VPC de AWS dedicada con anthos-gke , puede establecer este valor en el archivo .terraform/modules/gke_vpc/modules/gke-vpc/main.tf .

  • Actualice el valor del domain-name al valor predeterminado .

Reiniciando su plano de control

Si su plano de control deja de responder, puede reiniciar sus instancias. Al reiniciar las instancias del plano de control, la configuración se conserva, ya que el estado se guarda en discos persistentes.

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.
    cd anthos-aws
    anthos-gke aws management get-credentials
  2. Utilice kubectl para obtener el grupo de destino AWS EC2 de su plano de control desde su AWSCluster.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get awscluster cluster-name \
      -o jsonpath='{.status.targetGroupName}{"\n"}'
    

    La salida incluye el nombre del grupo de destino EC2 de su plano de control. Por ejemplo, gke-123456a7-controlplane .

  3. Abra la consola de AWS EC2 . Seleccione "Grupos de destino" en el panel izquierdo.

  4. Haga clic en la barra de búsqueda y encuentre su grupo objetivo. Haga clic en el nombre de su grupo objetivo y, a continuación, en Objetivos . Aparecerá la lista de instancias de su plano de control.

  5. Para cada instancia del grupo de destino, realice los siguientes pasos:

    1. Haga clic en el ID de instancia de la instancia. Aparecerá la consola de instancias de AWS EC2.

    2. Haga clic en el ID de instancia .

    3. Seleccione Acciones -> Estado de la instancia -> Terminar para eliminar la instancia. EC2 crea automáticamente una nueva instancia con el mismo volumen EBS.

    4. Regresar a la página de Grupos objetivo.

  6. Después de haber finalizado todas las instancias del grupo, regrese a la página Grupos de destino.

  7. En la sección "Objetivos Registrados ", busque la columna "Estado" . Cada instancia debe tener el estado " Correcto" . Si alguna instancia está en buen estado, espere unos minutos y haga clic en el icono " ".

  8. Una vez que todas las instancias del grupo objetivo estén en buen estado, proceda al siguiente paso.

Etiquetado de subredes

GKE en AWS requiere etiquetas en las subredes que contienen puntos de conexión del balanceador de carga. GKE en AWS etiqueta automáticamente todas las subredes especificadas en el campo spec.Networking.ServiceLoadBalancerSubnetIDs del recurso AWSCluster .

Si desea agregar subredes adicionales a su clúster de usuarios o si necesita volver a aplicar etiquetas a las subredes existentes, realice los siguientes pasos.

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Obtenga el ID de la VPC de AWS de su clúster con kubectl y guárdelo como una variable.

     export VPC_ID=$(\
     env HTTPS_PROXY=http://localhost:8118 \
     kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
    
  3. Verifique el contenido de las variables con echo . El resultado es similar a vpc-12345678abcdef0 .

    echo $VPC_ID
    
  4. Guarde su ID de clúster en una variable de entorno.

    export CLUSTER_ID=$(\
    env HTTPS_PROXY=http://localhost:8118 \
    kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
    

    Puedes comprobar la variable con echo :

    echo $CLUSTER_ID
    

    La respuesta incluye su ID de clúster.

    gke-12345678
    
  5. Si instaló GKE en AWS en una VPC dedicada, puede usar la herramienta de línea de comandos aws para recuperar el ID de subred.

    Seleccione entre las siguientes opciones:

    • Público, si desea exponer servicios en su subred pública.
    • Privado, si desea exponer servicios en su subred privada.
    • Varias subredes, si desea exponer servicios en varias subredes.

    Público

     export SUBNET_ID=$(aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \
     --query "Subnets[*].SubnetId" \
     --output text)
    

    La salida es un objeto que contiene el ID de su subred. Es similar a subnet-1234abcdefg . Puede comprobar la variable con echo :

    echo $SUBNET_ID
    

    La respuesta incluye su ID de subred.

    subnet-012345678abcdef
    

    Privado

     export SUBNET_ID=$(aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \
     --query "Subnets[*].SubnetId" \
     --output text)
    

    La salida es un objeto que contiene el ID de su subred. Es similar a subnet-1234abcdefg . Puede comprobar la variable con echo :

    echo $SUBNET_ID
    

    La respuesta incluye su ID de subred.

    subnet-012345678abcdef
    

    Varias subredes

    Si utiliza varias subredes para sus AWSNodePools (por ejemplo, si utiliza varias zonas de disponibilidad), debe etiquetar los ID de sus subredes individualmente.

    Recupere su lista de ID de subred con aws ec2 describe-subnets .

    Para obtener una lista de todas las subredes públicas, ejecute el siguiente comando:

    aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \
     --query "Subnets[*].SubnetId" \
     --output text
    

    Para obtener una lista de todas las subredes privadas, ejecute el siguiente comando:

    aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \
     --query "Subnets[*].SubnetId" \
     --output text
    

    La respuesta incluye los ID de su subred.

    subnet-012345678abcdef
    subnet-abcdef123456789
    subnet-123456789abcdef
    
  6. Etiquete su subred con el ID de su clúster. Si tiene varias subredes, seleccione "Varias subredes".

    Subred única

    aws ec2 create-tags \
    --resources $SUBNET_ID \
    --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
    

    Varias subredes

    Para cada una de sus subredes, ejecute el siguiente comando:

    aws ec2 create-tags \
    --resources subnet-ids \
    --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
    

    Reemplace subnet-ids con la lista de IDs de subred, separados por espacios. Por ejemplo, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef .

Error al eliminar sus clústeres

Si kubectl no responde al intentar eliminar un clúster de usuarios , obtenga los eventos de su clúster . Podría ver el siguiente evento.

Could not delete security group: resource SECURITY_GROUP_ID has a dependent object.

Solución

Elimine cualquier destino de montaje de AWS Elastic File System en SECURITY_GROUP_ID .

Errores de API

Kubernetes 1.22 deja de usar y reemplaza varias API. Si actualizó su clúster a la versión 1.22 o posterior, cualquier llamada que su aplicación realice a una de las API desactualizadas fallará.

Solución

Actualice su aplicación para reemplazar las llamadas API obsoletas con sus contrapartes más nuevas.

Instantáneas

La herramienta anthos-gke permite generar instantáneas de su entorno de GKE en AWS. Una instantánea contiene información útil.Google Cloud Admite reproducción y depuración de problemas sin conexión.

La herramienta anthos-gke puede generar una instantánea desde un servicio de administración o desde clústeres de usuarios. De forma predeterminada, una instantánea incluye CRD, eventos, información del clúster, registros del clúster, registros de instancia y archivos de instancia. Puede personalizar la información incluida en un archivo de configuración. El paquete también incluye un index.html con enlaces a los archivos incluidos.

Si desea solucionar problemas con su instalación de GKE en AWS antes de contactarnos Google Cloud soporte, pase a la siguiente sección .

Generando una instantánea

Esta sección muestra cómo crear una instantánea desde un clúster de administración o de usuarios utilizando la configuración predeterminada o una configuración personalizada.

Antes de empezar

Para conectarse a sus recursos de GKE en AWS, siga estos pasos. Seleccione si ya tiene una VPC de AWS (o una conexión directa a su VPC) o si creó una VPC dedicada al crear su servicio de administración.

VPC existente

Si tiene una conexión directa o VPN a una VPC existente, omita la línea env HTTP_PROXY=http://localhost:8118 de los comandos de este tema.

VPC dedicada

Cuando crea un servicio de administración en una VPC dedicada, GKE en AWS incluye un host bastión en una subred pública.

Para conectarse a su servicio de administración, realice los siguientes pasos:

  1. Vaya al directorio con su configuración de GKE en AWS. Este directorio se creó al instalar el servicio de administración .

    cd anthos-aws

  2. Para abrir el túnel, ejecute el script bastion-tunnel.sh . El túnel redirecciona a localhost:8118 .

    Para abrir un túnel al host bastión, ejecute el siguiente comando:

    ./bastion-tunnel.sh -N
    

    Los mensajes del túnel SSH aparecen en esta ventana. Cuando esté listo para cerrar la conexión, detenga el proceso usando Control+C o cerrando la ventana.

  3. Abra una nueva terminal y cámbiese a su directorio anthos-aws .

    cd anthos-aws
  4. Comprueba que puedes conectarte al clúster con kubectl .

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    La salida incluye la URL del servidor API del servicio de administración.

  • Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

    cd anthos-aws
    anthos-gke aws management get-credentials

Capturar una instantánea de un servicio de gestión

Para capturar una instantánea de un servicio de administración, utilice anthos-gke aws management diagnose snapshot .

env HTTPS_PROXY=http://localhost:8118 \
  anthos-gke aws management diagnose snapshot \
  --ssh-key-path ssh-key-path \
  --workspace workspace

Reemplazar:

  • ssh-key-path con la ruta a tu clave SSH de GKE en AWS. Por defecto, el archivo se crea en .ssh/anthos-gke .
  • workspace con la ruta al directorio donde creó su implementación de GKE en AWS. Si se creó un host bastión como parte de una instalación de VPC dedicada, GKE en AWS lo usa para conectarse a su servicio de administración.

La salida incluye el registro de acciones y el nombre del archivo de instantánea:

2020/06/15 15:39:48 Found bastion instance in tfworkspace. IP: bastion-ip.aws-zone.compute.amazonaws.com
writing file: /tmp/kubeconfig-mgmt679794004/kubeconfig.conf
snapshot: 2020/06/15 15:39:50 Getting snapshot of controlPlane...
snapshot: 2020/06/15 15:39:50 Getting snapshot of kubectl command...
snapshot: 2020/06/15 15:39:52 Getting snapshot of control plane managed aws resources
...
ip-10-0-1-44/commands/ip_route_list_table_all.out
/tmp/tmp.Z26niLmVfU/snapshot.tar.gz
2020/06/15 15:40:04 Snapshot saved in snapshot-1592260783.tar.gz.

Capturar una instantánea de un clúster de usuarios

Para capturar una instantánea de un clúster de usuarios, utilice anthos-gke aws clusters diagnose snapshot .

env HTTPS_PROXY=http://localhost:8118 \
  anthos-gke aws clusters diagnose snapshot user-cluster-name \
  --ssh-key-path ssh-key-path --workspace terraform-workspace

Reemplazar:

  • user-cluster-name es el nombre de su clúster de usuarios. De forma predeterminada, su primer clúster de usuarios se llama cluster-0 .
  • ssh-key-path con la ruta a tu clave SSH de GKE en AWS. Por defecto, el archivo se crea en .ssh/anthos-gke .
  • terraform-workspace con la ruta al espacio de trabajo de Terraform donde creó su implementación de GKE en AWS.

La salida incluye el registro de acciones y el nombre del archivo de instantánea:

2020/06/15 15:43:37 Found bastion instance in tfworkspace. IP: bastion-ip.aws-zone.compute.amazonaws.com
writing file: /tmp/kubeconfig-mgmt616204648/kubeconfig.conf
snapshot: 2020/06/15 15:43:40 Getting snapshot of controlPlane...
snapshot: 2020/06/15 15:43:40 Getting snapshot of kubectl command...
writing file: /tmp/kubeconfig-clustercluster-0620691367/kubeconfig.conf
snapshot: 2020/06/15 15:43:43 Getting snapshot of cluster default/cluster-0
snapshot: 2020/06/15 15:43:43 Getting snapshot of controlPlane...
snapshot: 2020/06/15 15:43:43 Getting snapshot of kubectl command...
snapshot: 2020/06/15 15:43:46 Getting snapshot of control plane managed aws resources
...
snapshot: 2020/06/15 15:43:48 Getting snapshot of node pools
snapshot: 2020/06/15 15:43:48 Getting snapshot of node pool default/pool-0
snapshot: 2020/06/15 15:43:48 Getting snapshot of node pool managed aws resources
...
2020/06/15 15:44:00 Snapshot saved in snapshot-1592261012.tar.gz.

Modificar la configuración de la instantánea

Para modificar la configuración predeterminada de la instantánea, primero use anthos-gke con la opción --dry-run y guarde el resultado en un archivo. Luego, edite la configuración y vuelva a ejecutar anthos-gke con la nueva configuración.

Crear un archivo de configuración para el servicio de administración

  1. Utilice anthos-gke con la opción --dry-run y redirija la salida a un archivo llamado management-config.yaml.

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws management diagnose snapshot --ssh-key-path ssh-key-path \
      --workspace workspace --dry-run > management-config.yaml 2>&1
    

    Reemplazar:

    • ssh-key-path con la ruta a tu clave SSH de GKE en AWS. Por defecto, el archivo se crea en ~/.ssh/anthos-gke .
    • workspace con la ruta al directorio donde creó su implementación de GKE en AWS.

  1. Edite el archivo management-config.yaml en un editor de texto. El archivo contiene dos secciones. La primera sección es un registro con marca de tiempo de anthos-gke , similar al siguiente:

    2020/06/15 15:26:51 Found bastion instance in tfworkspace. IP: bastion-ip.aws-zone.compute.amazonaws.com
    2020/06/15 15:26:51 Running in dry-run mode...
    ...
    

    Elimine la sección de registro. Conserve la configuración después de la línea The snapshot configuration is: ».

    El contenido restante del archivo es una configuración YAML que se parece a la siguiente:

mgmtCluster:
  instanceCommands:
  - dmesg
  - sudo crictl ps a
  - systemctl status -l containerd
  - journalctl --since '1 hour ago' --utc -u containerd
  - systemctl status -l kubelet
  - journalctl --since '1 hour ago' --utc -u kubelet
  - journalctl --since '1 hour ago' --utc --boot --dmesg
  - uptime
  - df --all --inodes
  - ip addr
  - sudo iptables-save --counters
  - mount
  - ip route list table all
  - top -bn1
  - ps -edF
  - ps -eo pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup
  - chronyc sources -v
  - journalctl --since '1 hour ago' --utc -u chrony
  instanceFiles:
  - /etc/kubernetes/manifests/
  - /proc/sys/fs/file-nr
  - /proc/sys/net/nf_conntrack_max
  - /var/log/startup.log
  - /var/log/cloud-init-output.log
  - /var/log/containers
  kubectlCommands:
  - commands:
    - kubectl get events
    - kubectl version
    - kubectl cluster-info
    - kubectl get clusterroles -o wide
    - kubectl get clusterrolebindings -o wide
    - kubectl get crd -o wide
    - kubectl describe clusterroles
    - kubectl describe clusterrolebindings
    - kubectl describe crd
    - kubectl get all -o yaml
    - kubectl describe all
  managedAWSResources: true
numOfThreads: 10
truncate: 2000
  1. Elimine cualquier comando que crea que expone datos confidenciales.

  2. Ejecute el comando anthos-gke con la opción --snapshot-config y management-config.yaml .

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws management diagnose snapshot --ssh-key-path ssh-key-path \
      --snapshot-config management-config.yaml --workspace terraform-workspace
    

    Reemplazar:

    • ssh-key-path con la ruta a tu clave SSH de GKE en AWS. Por defecto, el archivo se crea en .ssh/anthos-gke .
    • terraform-workspace con la ruta al espacio de trabajo de Terraform donde creó su implementación de GKE en AWS.

Crear un archivo de configuración para un clúster de usuarios

  1. Utilice anthos-gke con la opción --dry-run y redirija la salida a un archivo llamado user-config.yaml.

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters diagnose snapshot user-cluster-name \
      --ssh-key-path ssh-key-path --snapshot-config snapshot-config-path  \
      --workspace workspace --dry-run > user-config.yaml 2>&1
    

    Reemplazar:

    • user-cluster-name es el nombre de su clúster de usuarios. De forma predeterminada, su primer clúster se llama cluster-0 .
    • ssh-key-path con la ruta a tu clave SSH de GKE en AWS. Por defecto, el archivo se crea en ~/.ssh/anthos-gke .
    • workspace con la ruta al directorio donde creó su implementación de GKE en AWS.

  1. Edite el archivo management-config.yaml en un editor de texto. El archivo contiene dos secciones. La primera sección es un registro con marca de tiempo de anthos-gke , similar al siguiente:

    2020/06/15 15:26:51 Found bastion instance in tfworkspace. IP: bastion-ip.aws-zone.compute.amazonaws.com
    2020/06/15 15:26:51 Running in dry-run mode...
    ...
    

    Elimine la sección de registro. Conserve la configuración después de la línea The snapshot configuration is: ».

    El contenido restante del archivo es una configuración YAML que se parece a la siguiente:

clusters:
- clusterName: cluster-0
  controlPlane:
    instanceCommands:
    - dmesg
    - sudo crictl ps a
    - systemctl status -l containerd
    - journalctl --since '1 hour ago' --utc -u containerd
    - systemctl status -l kubelet
    - journalctl --since '1 hour ago' --utc -u kubelet
    - journalctl --since '1 hour ago' --utc --boot --dmesg
    - uptime
    - df --all --inodes
    - ip addr
    - sudo iptables-save --counters
    - mount
    - ip route list table all
    - top -bn1
    - sudo docker ps -a
    - ps -edF
    - ps -eo pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup
    instanceFiles:
    - /etc/kubernetes/manifests/
    - /proc/sys/fs/file-nr
    - /proc/sys/net/nf_conntrack_max
    - /var/log/startup.log
    - /var/log/cloud-init-output.log
    - /var/log/containers
    kubectlCommands:
    - commands:
      - kubectl get events
      - kubectl version
      - kubectl cluster-info
      - kubectl get clusterroles -o wide
      - kubectl get clusterrolebindings -o wide
      - kubectl get crd -o wide
      - kubectl describe clusterroles
      - kubectl describe clusterrolebindings
      - kubectl describe crd
      - kubectl get all -o yaml
      - kubectl describe all
      - kubectl logs --namespace=kube-system -l k8s-app=aws-ebs-csi-driver-node --all-containers
      - kubectl logs --namespace=kube-system -l k8s-app=aws-efs-csi-driver-node --all-containers
      - kubectl logs --namespace=kube-system -l k8s-app=calico-node --all-containers
      - kubectl logs --namespace=kube-system -l k8s-app=node-local-dns --all-containers
      - kubectl logs --namespace=kube-system -l k8s-app=kube-proxy --all-containers
      - kubectl describe nodes
    managedAWSResources: true
  nodePools:
  - NodePoolName: ""
    instanceCommands:
    - dmesg
    - sudo crictl ps a
    - systemctl status -l containerd
    - journalctl --since '1 hour ago' --utc -u containerd
    - systemctl status -l kubelet
    - journalctl --since '1 hour ago' --utc -u kubelet
    - journalctl --since '1 hour ago' --utc --boot --dmesg
    - uptime
    - df --all --inodes
    - ip addr
    - sudo iptables-save --counters
    - mount
    - ip route list table all
    - top -bn1
    - sudo docker ps -a
    - ps -edF
    - ps -eo pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup
    instanceFiles:
    - /etc/kubernetes/manifests/
    - /proc/sys/fs/file-nr
    - /proc/sys/net/nf_conntrack_max
    - /var/log/startup.log
    - /var/log/cloud-init-output.log
    - /var/log/containers
    managedAWSResources: true
mgmtCluster:
  kubectlCommands:
  - commands:
    - kubectl get awscluster -oyaml
numOfThreads: 10
truncate: 2000
  1. Elimine cualquier comando que crea que expone datos confidenciales.

  2. Ejecute el comando anthos-gke con la opción --snapshot-config y user-config.yaml .

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters diagnose snapshot user-cluster-name
      --ssh-key-path <ssh-key-path> \
      --snapshot-config user-config.yaml --workspace <terraform-workspace>
    

    Reemplazar:

    • user-cluster-name es el nombre de su clúster de usuarios. De forma predeterminada, su primer clúster se llama cluster-0 .
    • ssh-key-path con la ruta a tu clave SSH de GKE en AWS. Por defecto, el archivo se crea en .ssh/anthos-gke .
    • terraform-workspace con la ruta al espacio de trabajo de Terraform donde creó su implementación de GKE en AWS.

Contenido de la instantánea predeterminada

Introducción

Esta sección muestra ejemplos de árboles de archivos contenidos en la instantánea predeterminada para un servicio de administración y un clúster de usuarios.

Servicio de gestión

El siguiente árbol es un ejemplo de los archivos dentro de una instantánea para un clúster de administración.

.
├── index.html
├── mgmt_cluster
│   ├── controlplane-0-10.0.1.44
│   │   └── ip-10-0-1-44
│   │       ├── commands
│   │       │   ├── df_--all_--inodes.out
│   │       │   ├── dmesg.out
│   │       │   ├── ip_addr.out
│   │       │   ├── ip_route_list_table_all.out
│   │       │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│   │       │   ├── mount.out
│   │       │   ├── ps_-edF.out
│   │       │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│   │       │   ├── sudo_crictl_ps_a.out
│   │       │   ├── sudo_docker_ps_-a.err
│   │       │   ├── sudo_docker_ps_-a.out
│   │       │   ├── sudo_iptables-save_--counters.out
│   │       │   ├── systemctl_status_-l_containerd.out
│   │       │   ├── systemctl_status_-l_kubelet.out
│   │       │   ├── top_-bn1.out
│   │       │   └── uptime.out
│   │       └── files
│   │           ├── etc
│   │           │   └── kubernetes
│   │           │       └── manifests
│   │           │           ├── etcd.yaml
│   │           │           ├── gke-aws-cluster-operator.yaml
│   │           │           ├── kube-apiserver.yaml
│   │           │           └── kube-controller-manager.yaml
│   │           ├── proc
│   │           │   └── sys
│   │           │       ├── fs
│   │           │       │   └── file-nr
│   │           │       └── net
│   │           │           └── nf_conntrack_max
│   │           └── var
│   │               └── log
│   │                   ├── cloud-init-output.log
│   │                   ├── containers
│   │                   │   ├── etcd-ip-10-0-1-44.ap-southeast-2.compute.internal_kube-system_kube-etcd-149e96d0b0da2250505a6b41603e57f42a5386701fa0033840e8f3b211b49733.log
│   │                   │   ├── gke-aws-cluster-operator-ip-10-0-1-44.ap-southeast-2.compute.internal_kube-system_gke-aws-cluster-operator-d423d3191ce1a8c65c4a0f30f1d7598a8739c0aba65784355b28dee0d694626a.log
│   │                   │   ├── kube-apiserver-ip-10-0-1-44.ap-southeast-2.compute.internal_kube-system_kube-apiserver-48061659a4b77f4b50eed5819dbfab5586dc9086fa24217cc16486bd852dfbf6.log
│   │                   │   ├── kube-apiserver-ip-10-0-1-44.ap-southeast-2.compute.internal_kube-system_kube-apiserver-baf60859cd807e9325295fde7a8d3cd16c3d5e73abca87acc107cee5e08f4c1c.log
│   │                   │   └── kube-controller-manager-ip-10-0-1-44.ap-southeast-2.compute.internal_kube-system_kube-controller-manager-af9b4ffb40ada3383630090948ec8133ca0e3e54c232dd3f068b3bd8bbee8f92.log
│   │                   └── startup.log
│   ├── kubectl
│   │   ├── kubectl_cluster-info_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_describe_all_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_describe_clusterrolebindings_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_describe_clusterroles_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_describe_crd_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_get_all_-o_yaml_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_get_clusterrolebindings_-o_wide_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_get_clusterroles_-o_wide_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_get_crd_-o_wide_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   ├── kubectl_get_events_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   │   └── kubectl_version_--kubeconfig_.tmp.kubeconfig-mgmt609381529.kubeconfig.conf.out
│   └── managed_resources
│       ├── controlplane-0
│       │   ├── asg.out
│       │   └── instance-0.out
│       ├── elb.out
│       └── target_group.out
├── snapshot.config
└── snapshot.log

Clúster de usuarios

El siguiente árbol es un ejemplo de los archivos dentro de una instantánea para un clúster de usuarios llamado cluster-0 .

.
├── cluster
│   └── cluster-0
│       ├── control_plane
│       │   ├── controlplane-0-10.0.1.7
│       │   │   └── ip-10-0-1-7
│       │   │       ├── commands
│       │   │       │   ├── df_--all_--inodes.out
│       │   │       │   ├── dmesg.out
│       │   │       │   ├── ip_addr.out
│       │   │       │   ├── ip_route_list_table_all.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│       │   │       │   ├── mount.out
│       │   │       │   ├── ps_-edF.out
│       │   │       │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│       │   │       │   ├── sudo_crictl_ps_a.out
│       │   │       │   ├── sudo_docker_ps_-a.err
│       │   │       │   ├── sudo_docker_ps_-a.out
│       │   │       │   ├── sudo_iptables-save_--counters.out
│       │   │       │   ├── systemctl_status_-l_containerd.out
│       │   │       │   ├── systemctl_status_-l_kubelet.out
│       │   │       │   ├── top_-bn1.out
│       │   │       │   └── uptime.out
│       │   │       └── files
│       │   │           ├── etc
│       │   │           │   └── kubernetes
│       │   │           │       └── manifests
│       │   │           │           ├── aws-ebs-csi-driver-controller.yaml
│       │   │           │           ├── aws-encryption-provider.yaml
│       │   │           │           ├── cluster-autoscaler.yaml
│       │   │           │           ├── etcd-events.yaml
│       │   │           │           ├── etcd.yaml
│       │   │           │           ├── kube-apiserver.yaml
│       │   │           │           ├── kube-controller-manager.yaml
│       │   │           │           └── kube-scheduler.yaml
│       │   │           ├── proc
│       │   │           │   └── sys
│       │   │           │       ├── fs
│       │   │           │       │   └── file-nr
│       │   │           │       └── net
│       │   │           │           └── nf_conntrack_max
│       │   │           └── var
│       │   │               └── log
│       │   │                   ├── cloud-init-output.log
│       │   │                   ├── containers
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_csi-attacher-218b7834cda8b4ae0f6687e06b33426ca39669a6c2652948e17746d49ed4c7c9.log
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_csi-provisioner-ff1ba1960712a00065db1e036e1aaf5aeaca0979c833d020ad1cafdea05a76c7.log
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_ebs-plugin-697389a6c73bdb4a0370a644a28617b3b8a12862341b91ca2d640aa66724affd.log
│       │   │                   │   ├── aws-encryption-provider-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_aws-encryption-provider-b08216cbca004f71e68145b9a38b931276dd9ef92d26c53b85275587ce28f3ca.log
│       │   │                   │   ├── cluster-autoscaler-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_cluster-autoscaler-57f9ca6abec10a76b42449dababea6c963853b1aa30f1db2b87d963311d03629.log
│       │   │                   │   ├── cluster-autoscaler-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_cluster-autoscaler-9c09937ddbe3220c896f857a8b8c02c84062f13092b39ebac3ab1ce26f13b317.log
│       │   │                   │   ├── etcd-events-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_kube-etcd-events-4e79334e69f670a3a4637c20635944abb71ed93d6e802407ef5881478ee78dc1.log
│       │   │                   │   ├── etcd-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_kube-etcd-e6dbe39ef969fb2f049292d4f3a66a41d22f963b40f72f5f91ad6acd9e9cde77.log
│       │   │                   │   ├── kube-apiserver-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_kube-apiserver-e61770a46518313306e1668c34e4efbdb3ed81b7f451dc3278a00a40fee09e0d.log
│       │   │                   │   ├── kube-controller-manager-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_kube-controller-manager-3b33df6a4d4cca8fd63f90d4fcbee65595e71c0390a5c29c81670d0232b98edc.log
│       │   │                   │   └── kube-scheduler-ip-10-0-1-7.ap-southeast-2.compute.internal_kube-system_kube-scheduler-0aae214e17741189db8d3608275e71551f62f43619e07a37a11017b88a611970.log
│       │   │                   └── startup.log
│       │   ├── controlplane-1-10.0.1.61
│       │   │   └── ip-10-0-1-61
│       │   │       ├── commands
│       │   │       │   ├── df_--all_--inodes.out
│       │   │       │   ├── dmesg.out
│       │   │       │   ├── ip_addr.out
│       │   │       │   ├── ip_route_list_table_all.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│       │   │       │   ├── mount.out
│       │   │       │   ├── ps_-edF.out
│       │   │       │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│       │   │       │   ├── sudo_crictl_ps_a.out
│       │   │       │   ├── sudo_docker_ps_-a.err
│       │   │       │   ├── sudo_docker_ps_-a.out
│       │   │       │   ├── sudo_iptables-save_--counters.out
│       │   │       │   ├── systemctl_status_-l_containerd.out
│       │   │       │   ├── systemctl_status_-l_kubelet.out
│       │   │       │   ├── top_-bn1.out
│       │   │       │   └── uptime.out
│       │   │       └── files
│       │   │           ├── etc
│       │   │           │   └── kubernetes
│       │   │           │       └── manifests
│       │   │           │           ├── aws-ebs-csi-driver-controller.yaml
│       │   │           │           ├── aws-encryption-provider.yaml
│       │   │           │           ├── cluster-autoscaler.yaml
│       │   │           │           ├── etcd-events.yaml
│       │   │           │           ├── etcd.yaml
│       │   │           │           ├── kube-apiserver.yaml
│       │   │           │           ├── kube-controller-manager.yaml
│       │   │           │           └── kube-scheduler.yaml
│       │   │           ├── proc
│       │   │           │   └── sys
│       │   │           │       ├── fs
│       │   │           │       │   └── file-nr
│       │   │           │       └── net
│       │   │           │           └── nf_conntrack_max
│       │   │           └── var
│       │   │               └── log
│       │   │                   ├── cloud-init-output.log
│       │   │                   ├── containers
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_csi-attacher-63345efd65ea584c35f4b0d2de443bf42e83e65324e899be27335a25fe07a72c.log
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_csi-provisioner-6f66e7479c319fbcbcaf53f9b5398cd8e53bcd646fa9788afbc25a69fc9291fe.log
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_ebs-plugin-2ee649206dd099e29b8bb3cbf27bef499b851682c07590a34c2e08d9545ca51b.log
│       │   │                   │   ├── aws-encryption-provider-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_aws-encryption-provider-3d2b5c28b7389e1303d2e36dd510ec40cef99f2ea63823901ea9806869def8fa.log
│       │   │                   │   ├── cluster-autoscaler-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_cluster-autoscaler-ebc572523516845d023884810f721865c2f0a76e34aaf92babdffacf4c95f75b.log
│       │   │                   │   ├── cluster-autoscaler-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_cluster-autoscaler-f7a7480c9adb08077b9a07d2f14e2b14dda7b4d50027cf105d90f37c63945bfa.log
│       │   │                   │   ├── etcd-events-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_kube-etcd-events-60301eef32b7c10d0aea3de19549bfdcc3e4152cf3ca8ca7d5e10785e2e232fd.log
│       │   │                   │   ├── etcd-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_kube-etcd-25a369f08d0d2bbc9f8f83337724e14c9878a1a0249cc5e9c7c63cae3d3657a1.log
│       │   │                   │   ├── kube-apiserver-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_kube-apiserver-13a276422964d2674f16d971bafcd25555eee3eb10b6a6f60686e8b8810a5def.log
│       │   │                   │   ├── kube-controller-manager-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_kube-controller-manager-18625e69e9604fbacbe82aebc6dc18dd4427269941a25a9bdef3fc0e5a4dfb9e.log
│       │   │                   │   └── kube-scheduler-ip-10-0-1-61.ap-southeast-2.compute.internal_kube-system_kube-scheduler-12f48aad99ecc18b450ebcda85ffb7f138bbb6bc261fb06e75ae1548647eaa45.log
│       │   │                   └── startup.log
│       │   ├── controlplane-2-10.0.1.161
│       │   │   └── ip-10-0-1-161
│       │   │       ├── commands
│       │   │       │   ├── df_--all_--inodes.out
│       │   │       │   ├── dmesg.out
│       │   │       │   ├── ip_addr.out
│       │   │       │   ├── ip_route_list_table_all.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│       │   │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│       │   │       │   ├── mount.out
│       │   │       │   ├── ps_-edF.out
│       │   │       │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│       │   │       │   ├── sudo_crictl_ps_a.out
│       │   │       │   ├── sudo_docker_ps_-a.err
│       │   │       │   ├── sudo_docker_ps_-a.out
│       │   │       │   ├── sudo_iptables-save_--counters.out
│       │   │       │   ├── systemctl_status_-l_containerd.out
│       │   │       │   ├── systemctl_status_-l_kubelet.out
│       │   │       │   ├── top_-bn1.out
│       │   │       │   └── uptime.out
│       │   │       └── files
│       │   │           ├── etc
│       │   │           │   └── kubernetes
│       │   │           │       └── manifests
│       │   │           │           ├── aws-ebs-csi-driver-controller.yaml
│       │   │           │           ├── aws-encryption-provider.yaml
│       │   │           │           ├── cluster-autoscaler.yaml
│       │   │           │           ├── etcd-events.yaml
│       │   │           │           ├── etcd.yaml
│       │   │           │           ├── kube-apiserver.yaml
│       │   │           │           ├── kube-controller-manager.yaml
│       │   │           │           └── kube-scheduler.yaml
│       │   │           ├── proc
│       │   │           │   └── sys
│       │   │           │       ├── fs
│       │   │           │       │   └── file-nr
│       │   │           │       └── net
│       │   │           │           └── nf_conntrack_max
│       │   │           └── var
│       │   │               └── log
│       │   │                   ├── cloud-init-output.log
│       │   │                   ├── containers
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_csi-attacher-0d66d0e6d7ead9a0af3ee2b9ea7769669a33636639549571ed10eaacf7ddd85b.log
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_csi-provisioner-c68d3acbdf8f319fe1d700eb3584fd07016d7a8b507e05261b1596fb96ca7598.log
│       │   │                   │   ├── aws-ebs-csi-driver-controller-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_ebs-plugin-66c248fc6c21021355ad5aa20ec98894b3370d1b58d86d3bf4b794bfb971eaef.log
│       │   │                   │   ├── aws-encryption-provider-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_aws-encryption-provider-f79e0367f399331652f7beb9145e97eefe95a635a3101ffb73bb8c29d449304e.log
│       │   │                   │   ├── cluster-autoscaler-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_cluster-autoscaler-4ce584e9f04e3c545168a01a84b4a697a199e4ff536477d8cb884f89ab65872c.log
│       │   │                   │   ├── cluster-autoscaler-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_cluster-autoscaler-a384f6202e6b7f0a3d5918adc87a8acf158a4e5d13401825a129188663cf32d7.log
│       │   │                   │   ├── etcd-events-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_kube-etcd-events-4975f4f7ea692237be1016e2c03e024ca58cc78745b482ca41fe80481c425f28.log
│       │   │                   │   ├── etcd-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_kube-etcd-92a56adf23ce887f032335ccc2ebd48e39de6ddd600302fe985d3b088e8d4eea.log
│       │   │                   │   ├── kube-apiserver-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_kube-apiserver-76551958905114e0eaa056c0e3eb7cc0af7d9f6291af9efe49bbab95250500ce.log
│       │   │                   │   ├── kube-controller-manager-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_kube-controller-manager-d50c38a03f5e01ca438508db11091e9421fa8eb7231f484303a350a7b0538439.log
│       │   │                   │   └── kube-scheduler-ip-10-0-1-161.ap-southeast-2.compute.internal_kube-system_kube-scheduler-7ebaccccbf67c06d379b1541f1970e4e987de138556542469cc24aacea1c9213.log
│       │   │                   └── startup.log
│       │   ├── kubectl
│       │   │   ├── kubectl_cluster-info_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_describe_all_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_describe_clusterrolebindings_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_describe_clusterroles_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_describe_crd_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_get_all_-o_yaml_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_get_clusterrolebindings_-o_wide_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_get_clusterroles_-o_wide_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_get_crd_-o_wide_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   ├── kubectl_get_events_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   │   └── kubectl_version_--kubeconfig_.tmp.kubeconfig-clustercluster-0904143419.kubeconfig.conf.out
│       │   └── managed_resources
│       │       ├── controlplane-0
│       │       │   ├── asg.out
│       │       │   ├── eni.out
│       │       │   ├── etcd.out
│       │       │   └── instance-0.out
│       │       ├── controlplane-1
│       │       │   ├── asg.out
│       │       │   ├── eni.out
│       │       │   ├── etcd.out
│       │       │   └── instance-0.out
│       │       ├── controlplane-2
│       │       │   ├── asg.out
│       │       │   ├── eni.out
│       │       │   ├── etcd.out
│       │       │   └── instance-0.out
│       │       ├── elb.out
│       │       └── target_group.out
│       └── nodepools
│           ├── default
│           │   └── pool-0
│           │       ├── i-03a23df438ac8278e
│           │       │   └── ip-10-0-1-53
│           │       │       ├── commands
│           │       │       │   ├── df_--all_--inodes.out
│           │       │       │   ├── dmesg.out
│           │       │       │   ├── ip_addr.out
│           │       │       │   ├── ip_route_list_table_all.out
│           │       │       │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│           │       │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│           │       │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│           │       │       │   ├── mount.out
│           │       │       │   ├── ps_-edF.out
│           │       │       │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│           │       │       │   ├── sudo_crictl_ps_a.out
│           │       │       │   ├── sudo_docker_ps_-a.err
│           │       │       │   ├── sudo_docker_ps_-a.out
│           │       │       │   ├── sudo_iptables-save_--counters.out
│           │       │       │   ├── systemctl_status_-l_containerd.out
│           │       │       │   ├── systemctl_status_-l_kubelet.out
│           │       │       │   ├── top_-bn1.out
│           │       │       │   └── uptime.out
│           │       │       └── files
│           │       │           ├── proc
│           │       │           │   └── sys
│           │       │           │       ├── fs
│           │       │           │       │   └── file-nr
│           │       │           │       └── net
│           │       │           │           └── nf_conntrack_max
│           │       │           └── var
│           │       │               └── log
│           │       │                   ├── cloud-init-output.log
│           │       │                   ├── containers
│           │       │                   │   ├── aws-ebs-csi-driver-node-mwxhs_kube-system_ebs-plugin-696201b4997d5cc72d85e6b005faa544ab2311571b50d2b1402b6e967a9364f0.log
│           │       │                   │   ├── aws-ebs-csi-driver-node-mwxhs_kube-system_node-driver-registrar-fcde7a18980aee3c690a84953f44341df9755e28ada6a42a6aea4c1b9d6cdd8e.log
│           │       │                   │   ├── calico-node-2g6zt_kube-system_calico-node-f6c22e30079cff40bef7deafbdfa2a97d0c3a4a95e7b68499c917adb1aa24b09.log
│           │       │                   │   ├── calico-node-2g6zt_kube-system_flexvol-driver-9c6e02ad10d342a91e2c3c3d924f747cfab756e719ffc580c073c6e3640b7515.log
│           │       │                   │   ├── calico-node-2g6zt_kube-system_install-cni-3649827b98cb5b2f79f8e9204b07247ca8d2768e4d13b1a8a1359278741ed156.log
│           │       │                   │   ├── calico-node-2g6zt_kube-system_upgrade-ipam-3a2fe7afee90bfe4e09b0939300be89f4795bc7a57e8085a57cb714e015092f6.log
│           │       │                   │   ├── coredns-88cd756b8-thm49_kube-system_coredns-6485d1e189c7b11fdc6249316ab6082360737c67edb77ab0d426eb26dba261ee.log
│           │       │                   │   ├── gke-connect-agent-20200605-02-00-8647455579-jh2r2_gke-connect_gke-connect-agent-20200605-02-00-369a43ce1bccb57bf3abfd503b9b25c81dbcd73d60a8642b68c0bb89b1b8e9fd.log
│           │       │                   │   └── kube-proxy-sg5nr_kube-system_kube-proxy-44f9171a644c8d7d0497900f361faa22fc673adc8336608ced096e655ccde762.log
│           │       │                   └── startup.log
│           │       ├── i-0569a9f23d49f59ea
│           │       │   └── ip-10-0-1-137
│           │       │       ├── commands
│           │       │       │   ├── df_--all_--inodes.out
│           │       │       │   ├── dmesg.out
│           │       │       │   ├── ip_addr.out
│           │       │       │   ├── ip_route_list_table_all.out
│           │       │       │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│           │       │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│           │       │       │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│           │       │       │   ├── mount.out
│           │       │       │   ├── ps_-edF.out
│           │       │       │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│           │       │       │   ├── sudo_crictl_ps_a.out
│           │       │       │   ├── sudo_docker_ps_-a.err
│           │       │       │   ├── sudo_docker_ps_-a.out
│           │       │       │   ├── sudo_iptables-save_--counters.out
│           │       │       │   ├── systemctl_status_-l_containerd.out
│           │       │       │   ├── systemctl_status_-l_kubelet.out
│           │       │       │   ├── top_-bn1.out
│           │       │       │   └── uptime.out
│           │       │       └── files
│           │       │           ├── proc
│           │       │           │   └── sys
│           │       │           │       ├── fs
│           │       │           │       │   └── file-nr
│           │       │           │       └── net
│           │       │           │           └── nf_conntrack_max
│           │       │           └── var
│           │       │               └── log
│           │       │                   ├── cloud-init-output.log
│           │       │                   ├── containers
│           │       │                   │   ├── aws-ebs-csi-driver-node-zxxqg_kube-system_ebs-plugin-da9a84b2e45e2ad18d08cbab5260d4cee17636d868a645ab7343f50c25c64ece.log
│           │       │                   │   ├── aws-ebs-csi-driver-node-zxxqg_kube-system_node-driver-registrar-f96a7dbf1bac95c41e022b2ede129c664caafa6eff37caa52f6763c1e737be1a.log
│           │       │                   │   ├── calico-kube-controllers-56cd854695-mjfwx_kube-system_calico-kube-controllers-0ed4316450f5f2e6c4abfb5cc430ed18e2d530525e2ab0ed69a150eed5b3c860.log
│           │       │                   │   ├── calico-node-n5klf_kube-system_calico-node-36101112d423636164c236eacca76d6814c167203cfaf89754984cd79f3b6bbf.log
│           │       │                   │   ├── calico-node-n5klf_kube-system_flexvol-driver-5837e2ba75d549373ca0a3032d1be0c75c0dd442d2e25e286e9006e604794da2.log
│           │       │                   │   ├── calico-node-n5klf_kube-system_install-cni-0e19cfa737dcaaf8fbc40ee2e68460ea8888829b7fab4b8733d5322c339cf838.log
│           │       │                   │   ├── calico-node-n5klf_kube-system_upgrade-ipam-10c94c2fa5f67a69ad9ebeedf9764bbf566c99b50ef60f2f268d484bd028eb76.log
│           │       │                   │   └── kube-proxy-pzh87_kube-system_kube-proxy-5df6d54f9ff2dd036687e064186bcfc2b7c0536fd88586b5cac9e140ffa16658.log
│           │       │                   └── startup.log
│           │       └── i-05bfb8fc961337cc7
│           │           └── ip-10-0-1-167
│           │               ├── commands
│           │               │   ├── df_--all_--inodes.out
│           │               │   ├── dmesg.out
│           │               │   ├── ip_addr.out
│           │               │   ├── ip_route_list_table_all.out
│           │               │   ├── journalctl_--since__1_hour_ago__--utc_--boot_--dmesg.out
│           │               │   ├── journalctl_--since__1_hour_ago__--utc_-u_containerd.out
│           │               │   ├── journalctl_--since__1_hour_ago__--utc_-u_kubelet.out
│           │               │   ├── mount.out
│           │               │   ├── ps_-edF.out
│           │               │   ├── ps_-eo_pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup.out
│           │               │   ├── sudo_crictl_ps_a.out
│           │               │   ├── sudo_docker_ps_-a.err
│           │               │   ├── sudo_docker_ps_-a.out
│           │               │   ├── sudo_iptables-save_--counters.out
│           │               │   ├── systemctl_status_-l_containerd.out
│           │               │   ├── systemctl_status_-l_kubelet.out
│           │               │   ├── top_-bn1.out
│           │               │   └── uptime.out
│           │               └── files
│           │                   ├── proc
│           │                   │   └── sys
│           │                   │       ├── fs
│           │                   │       │   └── file-nr
│           │                   │       └── net
│           │                   │           └── nf_conntrack_max
│           │                   └── var
│           │                       └── log
│           │                           ├── cloud-init-output.log
│           │                           ├── containers
│           │                           │   ├── aws-ebs-csi-driver-node-kdghk_kube-system_ebs-plugin-3e107a145cc86ac24014b1bf4670b26cb9372fd8022bc0698ca68b27e79a9bfe.log
│           │                           │   ├── aws-ebs-csi-driver-node-kdghk_kube-system_node-driver-registrar-25874dd7063db875a27f170e13e74267749c0d9846781ac8ab7568ac5f940a11.log
│           │                           │   ├── calico-node-b98tq_kube-system_calico-node-1dd735ce87fe6f0f73761d2d97c07ea6f908d0cd088e23f6b916b13b6805f828.log
│           │                           │   ├── calico-node-b98tq_kube-system_flexvol-driver-e9951b1a3de0ed9426de260c5591b4c161b4917873f2eaaf1cbdbd3926c9f933.log
│           │                           │   ├── calico-node-b98tq_kube-system_install-cni-58a2f1a5bfb16951a4b012b5ed30751d24c3380f489011274e3ca8de7eb1e1aa.log
│           │                           │   ├── calico-node-b98tq_kube-system_upgrade-ipam-f9804f2eef0d18122219dbb2843880a392f55493dab0edc16bce2dc5e186fa2a.log
│           │                           │   ├── kube-proxy-pf7sv_kube-system_kube-proxy-473ffafc30368b1cb370cd5cbbe4b20e77dfc383da04386d3ec02948f04bc97d.log
│           │                           │   ├── metrics-server-v0.3.3-85dfcbb78-fmklb_kube-system_metrics-server-4570fa1bd82d238d0ab11fc4256e5cc9fa97accece05f7f0c02d5edab884468e.log
│           │                           │   └── metrics-server-v0.3.3-85dfcbb78-fmklb_kube-system_metrics-server-nanny-71eeba81fb3cf128066ca965aabc5bfdf8e045790a46a9ec7e56e73ad3859218.log
│           │                           └── startup.log
│           └── managed_resources
│               ├── asg.out
│               ├── instance-0.out
│               ├── instance-1.out
│               └── instance-2.out
├── index.html
├── mgmt_cluster
│   └── kubectl
│       └── kubectl_get_awscluster_-oyaml_--kubeconfig_.tmp.kubeconfig-mgmt786666316.kubeconfig.conf.out
├── snapshot.config
└── snapshot.log