GKE on AWS를 사용하여 문제를 해결할 때 도움이 될 수 있는 절차에 대해 알아봅니다.
개요
이 주제는 다음 섹션으로 나뉩니다.
- GKE on AWS 설치의 작업을 이해하기 위해 클러스터에 대한 정보 가져 오기
- 일반적인 문제의 문제 해결 단계
- 클러스터 상태의 '스냅샷'으로 Google Cloud 지원팀에 정보 제공
클러스터 정보 가져오기
이 섹션에서는 문제 해결을 위해 GKE on AWS 설치에 대한 정보를 검색하는 방법을 설명합니다.
관리자 클러스터에서 정보 가져오기
관리 서비스에 사용자 서비스에 대한 정보를 쿼리할 수 있습니다.
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
kubectl get
을 사용하여 클러스터의 기본 상태 정보를 검색합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get AWSCluster
출력에는 각 클러스터의 이름, 현재 상태, 사용 기간, 버전, 엔드포인트가 포함되어 있습니다.
NAME STATE AGE VERSION ENDPOINT cluster-0 Provisioning 2m41s 1.25.5-gke.2100 gke-<var>endpoint</var>.elb.us-east-1.amazonaws.com
kubectl describe
를 사용하면 클러스터에 대해 자세한 정보를 검색할 수 있습니다.
env HTTPS_PROXY=http://localhost:8118 \
kubectl describe AWSCluster cluster-0
이 출력은 세 가지 기본 섹션으로 구성됩니다.
Spec
에는 클러스터의 초기 선언 구성이 나열됩니다.Status
에는 클러스터 상태 및 관리 서비스로 생성된 AWS 리소스가 포함됩니다.Events
에는 모든 최근 작업 또는 오류가 포함됩니다. 이 로그는 클러스터를 디버깅할 때 매우 중요합니다.
다음과 유사한 결과가 출력됩니다.
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
사용자 클러스터 ID 가져오기
특정 GKE on AWS 기능을 구성하려면 사용자 클러스터 ID를 가져와야 합니다.
GKE on AWS 사용자 클러스터 ID를 가져오려면 다음 단계를 수행하세요.
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
kubectl get awscluster
를 사용하여 클러스터 ID를 검색합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster -o jsonpath={.items..status.clusterID}
출력에 클러스터 ID가 포함됩니다.
이벤트
이벤트는 Kubernetes 객체에 연결되는 메시지입니다. 이벤트는 리소스 상태에 영향을 주는 작업을 설명합니다. 관리 서비스는 AWSCluster
및 AWSNodePool
객체에 이벤트를 연결합니다. 이벤트는 클러스터 만들기, 업그레이드, 크기 조정, 삭제를 위해 수행된 작업 단계들에 대한 로그를 제공합니다. kubectl get
events
를 사용하여 이벤트를 나열합니다.
env HTTPS_PROXY=http://localhost:8118 \
kubectl get events
출력 예시
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"
작업자 로그
이벤트에는 작업자가 수행하는 상위 수준 작업이 나열됩니다. 스택 트레이스와 같은 하위 수준 활동을 관찰해야 할 수도 있습니다. 관리 서비스는 gke-aws-cluster-operator
라는 정적 포드를 실행합니다. 이 애플리케이션은 핵심 클러스터 관리 논리가 포함된 운영자입니다.
다음 단계에서는 crictl
도구를 사용하여 gke-aws-cluster-operator
의 로그를 검사합니다.
GKE on AWS 구성이 있는 디렉터리로 변경합니다. 이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
관리 EC2 인스턴스의 DNS를 찾습니다. Terraform 버전을 선택한 후 다음 명령어를 실행합니다.
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)
배스천 호스트를 사용하는 경우 배스천 호스트의 DNS를 찾습니다.
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)
SSH를 통해 관리 인스턴스로 연결합니다. 직접 연결되어 있는지 아니면 배스천 호스트를 사용하는지 선택합니다.
직접 연결
ssh -i ~/.ssh/anthos-gke ubuntu@$MANAGEMENT_IP
배스천
ssh -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS ubuntu@$MANAGEMENT_IP
gke-aws-cluster-operator
Pod의 컨테이너 ID를 가져옵니다.export POD_ID=$(sudo crictl pods --name gke-aws-cluster-operator --quiet) export CONTAINER_ID=$(sudo crictl ps --pod $POD_ID --latest --quiet)
Pod 로그를 인쇄합니다.
sudo crictl logs $CONTAINER_ID
Terraform
anthos-gke
명령어는 관리 서비스 프로비저닝을 위해 Terraform을 출력합니다.
terraform state
명령어를 사용하여 Terraform 상태로 관리되는 인프라를 나열할 수 있습니다.
terraform state list
출력 예시
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
terraform state show
명령어를 사용하면 모든 리소스를 자세히 살펴볼 수 있습니다.
예를 들어 관리 서비스 앞에 있는 부하 분산기를 검사합니다.
terraform state show module.gke_dedicated_vpc.module.gke_management.aws_lb.this
출력 예시
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"
}
}
문제 해결 단계
이 섹션에는 GKE on AWS에서 발생할 수 있는 문제에 대한 구체적인 문제 해결 단계가 나와 있습니다.
Terraform 오류
이 섹션에는 anthos-gke
및 terraform
명령줄 도구를 사용하여 관리 서비스를 설정할 때 발생할 수 있는 오류가 나와 있습니다.
NoCredentialProviders
다음 오류가 발생하면 Terraform 버전이 v0.12.28보다 높은지 확인합니다. 호환되는 Terraform 버전이 없으면 다운로드하여 설치합니다.
Error: cannot determine availability zones: NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors
사용 가능한 제공업체를 쿼리할 수 없음
다음 오류가 표시되면 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
이 오류를 해결하려면 anthos-aws
디렉터리에서 .terraform.lock.hcl
파일을 삭제합니다.
알 수 없는 토큰
관리 서비스를 만들 때 다음 오류가 발생하면 다음 안내를 따르세요.
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
Terraform 버전이 v0.12.28보다 높은지 확인합니다. 호환되는 Terraform 버전이 없으면 다운로드하여 설치합니다.
기존 제공업체 주소가 잘못됨
다음 오류가 발생하면 각 부 버전을 통해 Terraform 바이너리를 순서대로 업그레이드해야 합니다.
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.
예를 들어 Terraform을 v0.12.x에서 v0.14.x로 업그레이드하려면 v0.13.x를 일시적으로 설치해야 합니다. v0.13.x를 설치한 후 anthos-gke aws
management init
및 anthos-gke aws management apply
를 실행합니다. 그 다음 v0.14.x로 업그레이드할 수 있습니다.
배스천 호스트에 연결할 수 없음
배스천 호스트에 연결을 시도할 때 bind [::1]:8118: Cannot assign requested address
오류가 발생하면 IPv4를 사용하여 연결하지 못할 수 있습니다. 다음 명령어를 사용하여 IPv4 연결을 강제 적용합니다.
./bastion-tunnel.sh -N -4
서버에 연결할 수 없음
사용자 클러스터에서 kubectl
명령어를 실행하려고 할 때 Unable to connect to the server
오류가 발생하면 다음을 확인하세요.
- 비공개 서브넷 모두에는 서브넷 간에 경로가 있습니다.
- 비공개 서브넷은 AWS NAT 게이트웨이에 액세스할 수 있습니다.
kubectl
1.21을 사용하는 경우HTTP_PROXY
변수를HTTPS_PROXY
로 변경합니다.
커넥트에서 프로젝트에 액세스할 수 없음
일부 커넥트 작업에서 클러스터를 등록할 때 다음과 유사한 오류가 표시될 수 있습니다.
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
자세한 내용은 멀티 클러스터 관리 문제 해결에서 Fleet이 프로젝트에 액세스할 수 없음을 참조하세요.
권한 오류
다음 예시와 같이 anthos-gke
명령줄 도구를 사용할 때 인증 오류가 발생하는 경우가 있습니다.
oauth2: cannot fetch token: 400 Bad Request
gcloud auth application-default login
을 사용하여 Google Cloud CLI 설치를 다시 인증합니다.
kubectl
에서 클러스터에 연결할 수 없음
kubectl
을 사용하여 클러스터에 연결을 시도할 때 다음 오류가 발생하는 경우:
Error: could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
솔루션
AWS CLI 사용자 인증 정보가 만료되었을 수 있습니다. aws ec2 describe instances
에서 사용자 인증 정보가 유효한지 확인합니다.
aws configure
로 사용자 인증 정보를 다시 생성합니다. 다단계 인증(MFA)을 사용하는 경우 AWS MFA 토큰을 다시 생성합니다.
AWSCluster
가 Provisioning
상태 유지
kubectl get awsclusters
또는 kubectl describe AWSCluster cluster-name
의 클러스터 상태가 Provisioning
에서 변경되지 않으면 AWSCluster
의 spec.controlPlane.hub.membershipName
필드 값을 확인합니다. 이 필드의 값은 고유해야 합니다.
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
솔루션
문제를 해결하려면 다음 단계를 따르세요.
- 지원되는 Terraform 버전을 실행 중인지 확인합니다.
- AWS 계정에서 사용자 클러스터를 2개 이상 만든 경우 AWSCluster 정의를 편집합니다.
spec.controlPlane.hub.membershipName
을 고유한 값으로 변경합니다.kubectl
을 사용하여 변경사항을 적용합니다.
클러스터에 연결할 때 TLS 오류 발생
클러스터에 연결할 때 다음 오류가 발생하는 경우:
error dialing backend: remote error: tls: internal error
AWS VPC DHCP 옵션 집합에 domain-name
의 커스텀 값이 없는지 확인합니다. 커스텀 도메인이 설정되면 GKE on AWS는 인증서 서명 요청(CSR)을 생성할 수 없습니다.
솔루션
문제를 해결하려면 다음 단계 중 하나를 따르세요.
VPC에서
enableDnsHostnames
를 false로 설정합니다.anthos-gke
를 사용하여 전용 AWS VPC를 만드는 경우.terraform/modules/gke_vpc/modules/gke-vpc/main.tf
파일에 이 값을 설정할 수 있습니다.domain-name
의 값을 기본값으로 업데이트합니다.
제어 영역 재부팅
제어 영역이 응답하지 않는 경우 인스턴스를 재부팅할 수 있습니다. 제어 영역 인스턴스를 재부팅하면 구성은 영구 디스크에 저장된 상태로 유지됩니다.
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
kubectl
을 사용하여 제어 영역의 AWS EC2 대상 그룹을 AWSCluster에서 가져옵니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-name \ -o jsonpath='{.status.targetGroupName}{"\n"}'
출력에는 제어 영역의 EC2 대상 그룹 이름이 포함됩니다. 예를 들면
gke-123456a7-controlplane
입니다.AWS EC2 콘솔을 엽니다. 왼쪽 창에서 대상 그룹을 선택합니다.
검색창을 클릭하고 대상 그룹을 찾습니다. 대상 그룹의 Name(이름)을 클릭한 후 Targets(대상)를 클릭합니다. 제어 영역 인스턴스 목록이 표시됩니다.
대상 그룹의 인스턴스마다 다음 단계를 수행합니다.
인스턴스의 인스턴스 ID를 클릭합니다. AWS EC2 인스턴스 콘솔이 표시됩니다.
인스턴스 ID를 클릭합니다.
작업 -> 인스턴스 상태 -> 종료를 선택하여 인스턴스를 삭제합니다. EC2는 동일한 EBS 볼륨을 사용하는 새 인스턴스를 자동으로 만듭니다.
대상 그룹 페이지로 돌아갑니다.
그룹의 모든 인스턴스를 종료한 후 대상 그룹 페이지로 돌아갑니다.
페이지의 등록된 대상 섹션에서 상태 열을 찾습니다. 각 인스턴스의 상태는 정상이어야 합니다. 인스턴스 중 하나가 정상이면 몇 분 정도 기다린 후 새로고침(
) 아이콘을 클릭합니다.대상 그룹의 모든 인스턴스가 정상이면 다음 단계로 진행합니다.
서브넷 태그하기
GKE on AWS는 부하 분산기 엔드포인트를 포함하는 서브넷에 태그를 필요로 합니다. GKE on AWS는 AWSCluster
리소스의 spec.Networking.ServiceLoadBalancerSubnetIDs
필드에 지정된 모든 서브넷에 자동으로 태그를 지정합니다.
사용자 클러스터에 서브넷을 추가하려고 하거나 기존 서브넷에 태그를 다시 적용해야 하는 경우 다음 단계를 수행하세요.
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
kubectl
을 사용하여 클러스터의 AWS VPC ID를 가져오고 이를 변수로 저장합니다.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
echo
를 사용하여 변수 콘텐츠를 확인합니다.vpc-12345678abcdef0
과 유사한 결과가 출력됩니다.echo $VPC_ID
클러스터 ID를 환경 변수에 저장합니다.
export CLUSTER_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
echo
로 변수를 확인할 수 있습니다.echo $CLUSTER_ID
응답에 클러스터 ID가 포함됩니다.
gke-12345678
GKE on AWS를 전용 VPC에 설치한 경우
aws
명령줄 도구를 사용하여 서브넷 ID를 가져올 수 있습니다.다음 옵션 중 하나를 선택합니다.
- 공개: 공개 서브넷에 서비스를 노출하려는 경우
- 비공개: 비공개 서브넷에 서비스를 노출하려는 경우
여러 서브넷: 여러 서브넷에 서비스를 노출하려는 경우
공개
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text)
서브넷 ID가 포함된 객체가 출력되며
subnet-1234abcdefg
와 유사합니다.echo
로 변수를 확인할 수 있습니다.echo $SUBNET_ID
응답에 서브넷 ID가 포함됩니다.
subnet-012345678abcdef
비공개
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text)
서브넷 ID가 포함된 객체가 출력되며
subnet-1234abcdefg
와 유사합니다.echo
로 변수를 확인할 수 있습니다.echo $SUBNET_ID
응답에 서브넷 ID가 포함됩니다.
subnet-012345678abcdef
여러 서브넷
AWSNodePools에 여러 서브넷을 사용하는 경우(예를 들어 여러 가용성 영역을 사용하는 경우) 서브넷 ID에 개별적으로 태그를 지정해야 합니다.
aws ec2 describe-subnets
로 서브넷 ID 목록을 검색합니다.모든 공개 서브넷 목록을 가져오려면 다음 명령어를 실행합니다.
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text
모든 비공개 서브넷 목록을 가져오려면 다음 명령어를 실행합니다.
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text
응답에 서브넷 ID가 포함됩니다.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
클러스터 ID로 서브넷에 태그를 지정합니다. 여러 서브넷이 있는 경우 여러 서브넷을 선택합니다.
단일 서브넷
aws ec2 create-tags \ --resources $SUBNET_ID \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
여러 서브넷
각 서브넷에 대해 다음 명령어를 실행합니다.
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
subnet-ids를 공백으로 구분된 서브넷 ID 목록으로 바꿉니다. 예:
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
클러스터 삭제 시 오류 발생
사용자 클러스터를 삭제할 때 kubectl
이 응답하지 않으면 클러스터의 이벤트를 가져옵니다. 다음과 같은 이벤트가 표시될 수 있습니다.
Could not delete security group: resource SECURITY_GROUP_ID has a dependent object.
솔루션
SECURITY_GROUP_ID의 AWS Elastic File System 마운트 대상을 삭제합니다.
API 오류
Kubernetes 1.22는 여러 API의 지원을 중단하고 대체합니다. 클러스터를 버전 1.22 이상으로 업그레이드한 경우 애플리케이션에서 지원 중단된 API 중 하나를 호출하면 실패합니다.
솔루션
최신 API 호출로 지원 중단된 API 호출을 대체하려면 애플리케이션을 업그레이드하세요.
스냅샷
anthos-gke
도구는 GKE on AWS 환경의 스냅샷 생성을 지원합니다. 스냅샷에는 Google Cloud의 문제 재현 및 오프라인 디버그를 지원하는 정보가 포함되어 있습니다.
anthos-gke
도구는 관리 서비스 또는 사용자 클러스터에서 스냅샷을 생성할 수 있습니다. 기본적으로 스냅샷에는 CRD, 이벤트, 클러스터 정보, 클러스터 로그, 인스턴스 로그, 인스턴스 파일이 포함됩니다. 구성 파일에 포함된 정보를 맞춤설정할 수 있습니다. 번들에는 또한 포함된 파일 링크가 있는 index.html
이 있습니다.
Google Cloud 지원에 연락하기 전 GKE on AWS 설치 문제 해결을 직접 수행하려면 다음 섹션으로 건너뜁니다.
스냅샷 생성
이 섹션에서는 기본 구성 또는 커스텀 구성을 사용하여 관리 또는 사용자 클러스터에서 스냅샷을 만드는 방법을 보여줍니다.
시작하기 전에
GKE on AWS 리소스에 연결하려면 다음 단계를 수행하세요. 기존 AWS VPC가 있거나 VPC에 직접 연결되어 있는지 또는 관리 서비스를 만들 때 전용 VPC를 만들었는지 선택합니다.
기존 VPC
기존 VPC에 직접 또는 VPN으로 연결된 경우 이 주제의 명령어에서 env HTTP_PROXY=http://localhost:8118
줄을 생략합니다.
전용 VPC
전용 VPC에서 관리 서비스를 만들면 GKE on AWS의 공개 서브넷에 배스천 호스트가 포함됩니다.
관리 서비스에 연결하려면 다음 단계를 수행하세요.
GKE on AWS 구성이 있는 디렉터리로 변경합니다. 이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
bastion-tunnel.sh
스크립트를 실행하여 터널을 엽니다. 터널이localhost:8118
로 연결됩니다.배스천 호스트에 대한 터널을 열려면 다음 명령어를 실행합니다.
./bastion-tunnel.sh -N
SSH 터널의 메시지가 이 창에 표시됩니다. 연결을 종료할 준비가 되면 Control+C를 사용하거나 창을 닫아 프로세스를 중지합니다.
새 터미널을 열고
anthos-aws
디렉터리로 변경합니다.cd anthos-aws
kubectl
을 사용하여 클러스터에 연결할 수 있는지 확인합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
출력에는 관리 서비스 API 서버의 URL이 포함됩니다.
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
관리 서비스의 스냅샷 캡처
관리 서비스의 스냅샷을 캡처하려면 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
다음과 같이 바꿉니다.
- ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
.ssh/anthos-gke
에 생성됩니다. - workspace를 GKE on AWS 배포가 생성된 디렉터리 경로로 바꿉니다. 배스천 호스트가 전용 VPC 설치 중에 생성된 경우 GKE on AWS는 이 배스천을 사용해서 관리 서비스에 연결합니다.
출력에는 작업 로그 및 스냅샷 파일 이름이 포함됩니다.
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.
사용자 클러스터의 스냅샷 캡처
사용자 클러스터의 스냅샷을 캡처하려면 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
다음과 같이 바꿉니다.
- user-cluster-name은 사용자 클러스터의 이름입니다. 기본적으로 첫 번째 사용자 클러스터의 이름은
cluster-0
입니다. - ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
.ssh/anthos-gke
에 생성됩니다. - terraform-workspace를 GKE on AWS 배포가 생성된 Terraform 작업공간 경로로 바꿉니다.
출력에는 작업 로그 및 스냅샷 파일 이름이 포함됩니다.
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.
스냅샷 구성 수정
기본 스냅샷 구성을 수정하려면 먼저 --dry-run
옵션으로 anthos-gke
를 사용하고 출력을 파일에 저장합니다. 그런 후 구성을 수정하고 새 구성으로 anthos-gke
를 다시 실행합니다.
관리 서비스의 구성 파일 만들기
--dry-run
옵션으로anthos-gke
를 사용하고 출력을 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
다음과 같이 바꿉니다.
- ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
~/.ssh/anthos-gke
에 생성됩니다. - workspace를 GKE on AWS 배포가 생성된 디렉터리 경로로 바꿉니다.
- ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
텍스트 편집기에서
management-config.yaml
파일을 수정합니다. 이 파일에는 두 가지 섹션이 포함됩니다. 첫 번째 섹션은 다음과 비슷한anthos-gke
의 타임스탬프 로그입니다.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... ...
로그 섹션을 삭제합니다.
The snapshot configuration is:
줄 다음의 구성은 유지합니다.파일의 나머지 콘텐츠는 다음과 비슷한 YAML 구성입니다.
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
민감한 데이터 노출 가능성이 있는 명령어는 모두 삭제합니다.
anthos-gke
명령어를 실행하고--snapshot-config
옵션 및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
다음과 같이 바꿉니다.
- ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
.ssh/anthos-gke
에 생성됩니다. - terraform-workspace를 GKE on AWS 배포가 생성된 Terraform 작업공간 경로로 바꿉니다.
- ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
사용자 클러스터의 구성 파일 만들기
--dry-run
옵션으로anthos-gke
를 사용하고 출력을 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
다음과 같이 바꿉니다.
- user-cluster-name은 사용자 클러스터의 이름입니다. 기본적으로 첫 번째 클러스터의 이름은
cluster-0
입니다. - ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
~/.ssh/anthos-gke
에 생성됩니다. - workspace를 GKE on AWS 배포가 생성된 디렉터리 경로로 바꿉니다.
- user-cluster-name은 사용자 클러스터의 이름입니다. 기본적으로 첫 번째 클러스터의 이름은
텍스트 편집기에서
management-config.yaml
파일을 수정합니다. 이 파일에는 두 가지 섹션이 포함됩니다. 첫 번째 섹션은 다음과 비슷한anthos-gke
의 타임스탬프 로그입니다.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... ...
로그 섹션을 삭제합니다.
The snapshot configuration is:
줄 다음의 구성은 유지합니다.파일의 나머지 콘텐츠는 다음과 비슷한 YAML 구성입니다.
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
민감한 데이터 노출 가능성이 있는 명령어는 모두 삭제합니다.
anthos-gke
명령어를 실행하고--snapshot-config
옵션 및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>
다음과 같이 바꿉니다.
- user-cluster-name은 사용자 클러스터의 이름입니다. 기본적으로 첫 번째 클러스터의 이름은
cluster-0
입니다. - ssh-key-path를 GKE on AWS ssh 키 경로로 바꿉니다.
기본적으로 파일이
.ssh/anthos-gke
에 생성됩니다. - terraform-workspace를 GKE on AWS 배포가 생성된 Terraform 작업공간 경로로 바꿉니다.
- user-cluster-name은 사용자 클러스터의 이름입니다. 기본적으로 첫 번째 클러스터의 이름은
기본 스냅샷 콘텐츠
소개
이 섹션에서는 관리 서비스 및 사용자 클러스터의 기본 스냅샷 내에 포함된 예시 파일 트리를 보여줍니다.
관리 서비스
다음 트리는 관리 클러스터의 스냅샷 내에 있는 파일의 예시입니다.
.
├── 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
사용자 클러스터
다음 트리는 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