Obtén información sobre los pasos que te pueden resultar útiles para solucionar problemas mediante GKE on AWS.
Descripción general
Este tema se divide en las siguientes secciones:
- Obtén información sobre tu clúster para comprender las operaciones de la instalación de GKE on AWS.
- Pasos de solución de problemas para problemas comunes.
- "instantánea" del estado de tu clúster para proporcionar información a la asistencia de Google Cloud.
Obtén información sobre tu clúster
En esta sección, se explica cómo recuperar información en la instalación de GKE on AWS para solucionar problemas.
Obtén información del clúster de administrador
Puedes consultar tu servicio de administración para obtener información sobre los clústeres de usuarios.
Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio de administración.cd anthos-aws anthos-gke aws management get-credentials
Usa
kubectl get
para recuperar la información de estado básica de un clúster.env HTTP_PROXY=http://localhost:8118 \ kubectl get AWSCluster
La salida incluye el nombre, el estado actual, la edad, la versión y el extremo de cada clúster.
NAME STATE AGE VERSION ENDPOINT cluster-0 Provisioning 2m41s 1.17.9-gke.2800 gke-<var>endpoint</var>.elb.us-east-1.amazonaws.com
Puedes recuperar más información sobre un clúster con kubectl describe
.
env HTTP_PROXY=http://localhost:8118 \
kubectl describe AWSCluster cluster-0
Esta salida tiene tres secciones principales:
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
incluye todas las acciones o errores recientes. Este registro es muy útil para depurar el clúster.
La salida se ve de la siguiente manera:
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
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 tus objetos AWSCluster
y AWSNodePool
. Los eventos proporcionan un registro de los pasos necesarios para crear, actualizar, borrar o cambiar el tamaño de un clúster. Usa kubectl get
events
para enumerar los eventos.
env HTTP_PROXY=http://localhost:8118 \
kubectl get events
Resultado de ejemplo
LAST SEEN TYPE REASON OBJECT MESSAGE
27s Normal CreatingCluster awscluster/cluster-0 Cluster version 1.17.9-gke.2800 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 de alto nivel realizadas por el operador. Es posible que debas observar una 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 de administración del clúster principal.
En los siguientes pasos, debes usar la herramienta crictl
para examinar los registros de gke-aws-cluster-operator
.
Cambia al directorio con la configuración de GKE en AWS. Creaste este directorio cuando instalaste el servicio de administración.
cd anthos-aws
Localiza el DNS de la instancia EC2 de administración.
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)
Si usas un host de bastión, busca su DNS.
export BASTION_DNS=$(terraform output bastion_dns_name)
Conéctate a la instancia de administración mediante SSH. Elige si tienes una conexión directa o usa un Host de 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
Obtén 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)
Imprime los registros del Pod.
sudo crictl logs $CONTAINER_ID
Terraform
El comando anthos-gke
genera Terraform para aprovisionar un servicio de administración.
Puedes usar el comando terraform state
para enumerar la infraestructura administrada en el estado de Terraform.
terraform state list
Resultado de ejemplo
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 ver con más detalle cualquier recurso con el comando terraform state show
.
Por ejemplo, analicemos el balanceador de cargas frente al servicio de administración.
terraform state show module.gke_dedicated_vpc.module.gke_management.aws_lb.this
Resultado de ejemplo
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 los problemas que podrían surgir con GKE on AWS.
No se puede establecer una conexión con el servidor
Si recibes el error Unable to connect to the server
cuando intentas ejecutar un comando kubectl
en tu clúster de usuario, que se cumplan estos aspectos:
- Todas las subredes privadas tienen rutas entre ellas.
- Tus subredes privadas tienen acceso a una puerta de enlace NAT de AWS.
Conectar no puede acceder al proyecto
Durante algunas operaciones de Connect cuando registras tu clúster, es posible que veas un error similar al siguiente:
ERROR: (gcloud.container.hub.memberships.register) failed to initialize Default Feature "authorizer", the Hub service account may not have access to your project
Si deseas obtener más información, consulta Solución de problemas de conexión.
Errores de permisos
Si recibes un error de autenticación cuando usas la herramienta de línea de comandos de anthos-gke
, como el que se muestra a continuación, haz lo siguiente:
oauth2: cannot fetch token: 400 Bad Request
Vuelve a autenticar la instalación del SDK de Cloud con gcloud auth application-default login
.
Un AWSCluster
permanece Provisioning
Si el estado de un clúster en kubectl get awsclusters
o kubectl describe AWSCluster <var>cluster-name</var>
no cambia de Provisioning
, verifica el valor del campo spec.controlPlane.hub.membershipName
de tu 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.16.9-gke.15 gke-123456a7-controlplane-abcdefg12345.elb.us-east-1.amazonaws.com
Para solucionar el problema, edita la definición de AWSCluster, cambia spec.controlPlane.hub.membershipName
a un valor único y aplica el cambio mediante kubectl
.
Solución
Cambia el valor del campo spec.controlPlane.hub.membershipName
para incluir un nombre de clúster único.
Reinicia el plano de control
Si el plano de control deja de responder, puedes reiniciar sus instancias. Cuando reinicias las instancias del plano de control, la configuración permanece, ya que se guarda el estado en los discos persistentes.
- Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio de administración.cd anthos-aws anthos-gke aws management get-credentials
Usa
kubectl
para obtener el grupo de destino de AWS EC2 del plano de control desde tu AWSCluster.env HTTP_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-name \ -o jsonpath='{.status.targetGroupName}{"\n"}'
En el resultado, se incluye el nombre del grupo de destino de EC2 de tu plano de control. Por ejemplo:
gke-123456a7-controlplane
Abre la consola de AWS EC2. Selecciona Grupos de destino en el panel izquierdo.
Haz clic en la barra de búsqueda y busca tu grupo de destino. Haz clic en el Nombre del grupo de destino y, luego, en Destinos. Aparecerá la lista de las instancias de tu plano de control.
Para cada instancia, haz clic en el nombre de la instancia. Aparecerá la consola de las instancias de AWS EC2.
Selecciona Acciones -> Estado de la instancia -> Finalizar para quitar la instancia. EC2 crea automáticamente una instancia nueva con el mismo volumen de EBS.
Cuando todas las instancias en el grupo de destino estén en buen estado, puedes seguir actualizando el clúster o arreglando la configuración.
Etiqueta subredes
GKE on AWS requiere etiquetas en las subredes que contienen extremos del balanceador de cargas. GKE on AWS etiqueta de forma automática todas las subredes especificadas en el campo spec.Networking.ServiceLoadBalancerSubnetIDs
del recurso AWSCluster
.
Si deseas agregar subredes adicionales a tu clúster de usuario o si necesitas volver a aplicar etiquetas a las subredes existentes, sigue estos pasos.
Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio de administración.cd anthos-aws anthos-gke aws management get-credentials
Obtén el ID de la VPC de AWS de tu clúster con
kubectl
y almacénalo como una variable.export VPC_ID=$(\ env HTTP_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
Comprueba el contenido de las variables mediante
echo
. La salida es similar avpc-12345678abcdef0
.echo $VPC_ID
Guarda el ID de tu clúster en una variable de entorno.
export CLUSTER_ID=$(\ env HTTP_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
Puedes verificar la variable con
echo
:echo $CLUSTER_ID
La respuesta incluye el ID de tu clúster.
gke-12345678
De forma predeterminada, GKE on AWS configura una VPC con subredes privadas y públicas. Para recuperar el ID de la subred, usa la herramienta de línea de comandos de
aws
.Selecciona una de las siguientes opciones:
- Público, si deseas exponer Services en tu subred pública.
- Privado, si deseas exponer Services en tu subred privada.
Varias subredes, si deseas exponer Services 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)
El resultado es un objeto que contiene el ID de tu subred. Es similar a
subnet-1234abcdefg
. Puedes verificar la variable conecho
:echo $SUBNET_ID
La respuesta incluirá el ID de tu subred.
subnet-012345678abcdef
Privada
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text)
El resultado es un objeto que contiene el ID de tu subred. Es similar a
subnet-1234abcdefg
. Puedes verificar la variable conecho
:echo $SUBNET_ID
La respuesta incluirá el ID de tu subred.
subnet-012345678abcdef
Varias subredes
Si usas varias subredes para tus AWSNodePools (por ejemplo, si usas varias zonas de disponibilidad), debes etiquetar los ID de tus subredes de forma individual.
Recupera la lista de ID de subredes mediante
aws ec2 describe-subnets
.Para obtener una lista de todas las subredes públicas, ejecuta 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, ejecuta 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 incluirá los ID de las subredes.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
Etiqueta la subred con el ID de tu clúster. Si tienes varias subredes, selecciona 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 tus subredes, ejecuta el siguiente comando:
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Reemplaza subnet-ids por la lista de ID de subredes, separados por espacios. Por ejemplo,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
.
Instantáneas
La herramienta anthos-gke
admite la generación de instantáneas de tu entorno de GKE on AWS. Una instantánea contiene información para ayudar al equipo de asistencia de Google Cloud a reproducir y depurar problemas sin conexión.
La herramienta de anthos-gke
puede generar una instantánea desde un servicio de administración o clústeres de usuario. De forma predeterminada, una instantánea incluye CRD, eventos, información del clúster, registros del clúster, registros de instancias y archivos de instancias. Puedes personalizar la información que se incluye en un archivo de configuración. El paquete también contiene un index.html
con vínculos a los archivos incluidos.
Si deseas solucionar problemas relacionados con la instalación de GKE on AWS antes de comunicarte con el equipo de asistencia de Google Cloud, ve a la siguiente sección.
Genera una instantánea
En esta sección, se muestra cómo crear una instantánea desde un clúster de usuario o de administración mediante la configuración predeterminada o una configuración personalizada.
Antes de comenzar
Para conectarte a tus recursos de GKE on AWS, realiza las siguientes instrucciones. Selecciona si tienes una VPC de AWS existente (o conexión directa a tu VPC) o si creaste una VPC dedicada cuando creaste tu servicio de administración.
VPC existente
Si tienes una conexión directa o de VPN con una VPC existente, omite la línea env HTTP_PROXY=http://localhost:8118
de los comandos en este tema.
VPC dedicada
Cuando creas un servicio de administración en una VPC dedicada, GKE on AWS incluye un host de bastión en una subred pública.
Para conectarte al servicio de administración, realiza los siguientes pasos:
Cambia al directorio con la configuración de GKE en AWS. Creaste este directorio cuando instalaste el servicio de administración.
cd anthos-aws
Ejecuta la secuencia de comandos
bastion-tunnel.sh
para abrir el túnel. El túnel reenvía alocalhost:8118
.Para abrir un túnel al host de bastión, ejecuta el siguiente comando:
./bastion-tunnel.sh -N
Los mensajes del túnel SSH aparecen en esta ventana. Cuando estés listo para cerrar la conexión, detén el proceso con Control + C o cierra la ventana.
Abre una terminal nueva y cambia a tu directorio de
anthos-aws
.cd anthos-aws
Verifica que puedas conectarte al clúster con
kubectl
.env HTTP_PROXY=http://localhost:8118 \ kubectl cluster-info
El resultado incluye la URL para el servidor de API del servicio de administración.
Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio de administración.cd anthos-aws anthos-gke aws management get-credentials
Captura una instantánea de un servicio de administración
Para capturar una instantánea de un servicio de administración, usa anthos-gke aws management diagnose snapshot
.
env HTTP_PROXY=http://localhost:8118 \
anthos-gke aws management diagnose snapshot \
--ssh-key-path ssh-key-path \
--workspace workspace
Reemplaza lo siguiente:
- ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
.ssh/anthos-gke
. - workspace con la ruta de acceso al directorio en el que creaste tu implementación de GKE on AWS. Si se creó un Host de bastión como parte de una instalación de VPC dedicada, GKE on AWS usa el bastión para conectarse a tu servicio de administración.
En la salida, se incluye el registro de acciones y el nombre del archivo de la 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.
Captura una instantánea de un clúster de usuario
Para capturar una instantánea de un clúster de usuario, usa anthos-gke aws clusters diagnose snapshot
.
env HTTP_PROXY=http://localhost:8118 \
anthos-gke aws clusters diagnose snapshot user-cluster-name \
--ssh-key-path ssh-key-path --workspace terraform-workspace
Reemplaza lo siguiente:
- user-cluster-name es el nombre del clúster de usuario. De forma predeterminada, tu primer clúster de usuario se llama
cluster-0
. - ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
.ssh/anthos-gke
. - terraform-workspace es la ruta de acceso al lugar de trabajo de Terraform en el que creaste tu implementación de GKE on AWS.
En la salida, se incluye el registro de acciones y el nombre del archivo de la 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.
Modifica la configuración de la instantánea
Para modificar la configuración predeterminada de la instantánea, primero debes usar anthos-gke
con la opción --dry-run
y guardar la salida en un archivo. Luego, edita la configuración y vuelve a ejecutar anthos-gke
con la nueva configuración.
Crea un archivo de configuración para el servicio de administración
Usa
anthos-gke
con la opción--dry-run
y redirecciona la salida a un archivo llamado management-config.yaml.env HTTP_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
Reemplaza lo siguiente:
- ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
~/.ssh/anthos-gke
. - workspace con la ruta de acceso al directorio en el que creaste tu implementación de GKE on AWS.
- ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
Edita el archivo
management-config.yaml
en un editor de texto. El archivo contiene dos secciones. La primera sección es un registro con marcas de tiempo deanthos-gke
, que tiene el siguiente aspecto: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... ...
Borra la sección de registro. Mantén la configuración después de la línea
The snapshot configuration is:
.El contenido restante del archivo es una configuración YAML similar 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
Quita todos los comandos que crees que exponen datos sensibles.
Ejecuta el comando
anthos-gke
con las opciones--snapshot-config
ymanagement-config.yaml
.env HTTP_PROXY=http://localhost:8118 \ anthos-gke aws management diagnose snapshot --ssh-key-path ssh-key-path \ --snapshot-config management-config.yaml --workspace terraform-workspace
Reemplaza lo siguiente:
- ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
.ssh/anthos-gke
. - terraform-workspace es la ruta de acceso al lugar de trabajo de Terraform en el que creaste tu implementación de GKE on AWS.
- ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
Crea un archivo de configuración para un clúster de usuario
Usa
anthos-gke
con la opción--dry-run
y redirecciona la salida a un archivo llamado user-config.yaml.env HTTP_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
Reemplaza lo siguiente:
- user-cluster-name es el nombre del clúster de usuario. De forma predeterminada, tu primer clúster se llama
cluster-0
. - ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
~/.ssh/anthos-gke
. - workspace con la ruta de acceso al directorio en el que creaste tu implementación de GKE on AWS.
- user-cluster-name es el nombre del clúster de usuario. De forma predeterminada, tu primer clúster se llama
Edita el archivo
management-config.yaml
en un editor de texto. El archivo contiene dos secciones. La primera sección es un registro con marcas de tiempo deanthos-gke
, que tiene el siguiente aspecto: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... ...
Borra la sección de registro. Mantén la configuración después de la línea
The snapshot configuration is:
.El contenido restante del archivo es una configuración YAML similar 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
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
Quita todos los comandos que crees que exponen datos sensibles.
Ejecuta el comando
anthos-gke
con las opciones--snapshot-config
yuser-config.yaml
.env HTTP_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>
Reemplaza lo siguiente:
- user-cluster-name es el nombre del clúster de usuario. De forma predeterminada, tu primer clúster se llama
cluster-0
. - ssh-key-path es la ruta de acceso a tu clave SSH de GKE on AWS.
De forma predeterminada, el archivo se crea en
.ssh/anthos-gke
. - terraform-workspace es la ruta de acceso al lugar de trabajo de Terraform en el que creaste tu implementación de GKE on AWS.
- user-cluster-name es el nombre del clúster de usuario. De forma predeterminada, tu primer clúster se llama
Contenido de instantáneas predeterminado
Introducción
En esta sección, se muestra un árbol de archivos de ejemplo dentro de la instantánea predeterminada para un servicio de administración y un clúster de usuario.
Servicio de administració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 usuario
El siguiente árbol es un ejemplo de los archivos dentro de una instantánea para un clúster de usuario 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