פתרון בעיות

מידע על שלבים שיכולים לעזור לפתור בעיות ב-GKE ב-AWS.

סקירה כללית

הנושא הזה מחולק לקטעים הבאים:

קבלת מידע על האשכול

בקטע הזה מוסבר איך לאחזר מידע על ההתקנה של GKE on AWS כדי לפתור בעיות.

אחזור מידע מאשכול הניהול

אפשר לשלוח שאילתה לשירות הניהול כדי לקבל מידע על אשכולות המשתמשים.

  1. בספרייה של anthos-aws, משתמשים ב-anthos-gke כדי להעביר את ההקשר לשירות הניהול.

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

  2. משתמשים בפקודה 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

איך מקבלים את המזהים של אשכולות המשתמשים

כדי להגדיר תכונות מסוימות של GKE ב-AWS, יכול להיות שתצטרכו לקבל את מזהי אשכולות המשתמשים.

כדי לקבל את מזהה אשכול המשתמשים של GKE ב-AWS, מבצעים את השלבים הבאים:

  1. בספרייה של anthos-aws, משתמשים ב-anthos-gke כדי להעביר את ההקשר לשירות הניהול.

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

  2. כדי לאחזר את מזהי האשכולות, משתמשים בפקודה kubectl get awscluster.

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

    הפלט מכיל את מזהי האשכולות.

אירועים

אירוע הוא הודעה שמצורפת לאובייקט 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.

  1. עוברים לספרייה עם ההגדרה של GKE ב-AWS. יצרתם את הספרייה הזו כשהתקנתם את שירות הניהול.

    cd anthos-aws

  2. מאתרים את ה-DNS של מופע הניהול של EC2. בוחרים את הגרסה של 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)
    
  3. אם אתם משתמשים ביעד מבוצר (bastion host), צריך למצוא את ה-DNS של היעד המבוצר (bastion host).

    ‫Terraform 0.12, ‏ 0.13

    export BASTION_DNS=$(terraform output bastion_dns_name)
    

    ‫Terraform 0.14.3 ואילך

    export BASTION_DNS=$(terraform output -raw bastion_dns_name)
    
  4. מתחברים באמצעות SSH למכונת הניהול. בוחרים אם יש לכם קישור ישיר או שאתם משתמשים ביעד מבוצר (bastion host).

    חיבור ישיר

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

    Bastion

    ssh -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS ubuntu@$MANAGEMENT_IP
    
  5. מקבלים את מזהה מאגר התגים של ה-pod‏ gke-aws-cluster-operator.

    export POD_ID=$(sudo crictl pods --name gke-aws-cluster-operator --quiet)
    export CONTAINER_ID=$(sudo crictl ps --pod $POD_ID --latest --quiet)
    
  6. מדפיסים את היומנים של ה-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 ב-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

כדי לפתור את השגיאה, צריך למחוק את הקובץ .terraform.lock.hcl מהספרייה anthos-aws.

טוקן לא ידוע

אם אתם מקבלים את השגיאה הבאה כשאתם יוצרים שירות ניהול:

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.

אי אפשר להתחבר ליעד מבוצר (bastion host)

אם אתם מקבלים את השגיאה bind [::1]:8118: Cannot assign requested address כשאתם מנסים להתחבר ליעד המבוצר (bastion host), יכול להיות שלא תוכלו להתחבר באמצעות IPv4. כדי לכפות חיבור IPv4, מריצים את הפקודה הבאה:

./bastion-tunnel.sh -N -4

אין אפשרות להתחבר לשרת

אם מופיעה השגיאה Unable to connect to the server כשמנסים להריץ פקודה של kubectl באשכול המשתמשים, צריך לבדוק את הדברים הבאים:

  • לכל רשתות המשנה הפרטיות יש מסלולים ביניהן.
  • לרשתות המשנה הפרטיות שלכם יש גישה לשער NAT של AWS.
  • אם אתם משתמשים בגרסה kubectl 1.21, משנים את המשתנה HTTP_PROXY ל-HTTPS_PROXY.

ל-Connect אין גישה לפרויקט

במהלך פעולות מסוימות של Connect כשרושמים את האשכול, יכול להיות שתופיע שגיאה דומה לזו:

  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
  

מידע נוסף זמין במאמר פתרון בעיות בקטע 'ניהול של כמה אשכולות' בנושא לצי לא הייתה גישה לפרויקט.

שגיאות הרשאות

אם קיבלתם שגיאת אימות כשאתם משתמשים בכלי anthos-gke של שורת הפקודה, למשל:

oauth2: cannot fetch token: 400 Bad Request

מאמתים מחדש את ההתקנה של Google Cloud CLI באמצעות gcloud auth application-default login.

המכשיר 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), עליכם ליצור מחדש את אסימון ה-MFA של AWS.

AWSCluster שהיות Provisioning

אם המצב של אשכול ב-kubectl get awsclusters או ב-kubectl describe AWSCluster cluster-name לא משתנה מ-Provisioning, בודקים את הערך של השדה spec.controlPlane.hub.membershipName ב-AWSCluster. הערך בשדה הזה חייב להיות ייחודי.

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

פתרונות

כדי לפתור את הבעיה, אפשר לנסות את השלבים הבאים:

שגיאות TLS כשמתחברים לאשכול

אם קיבלתם את השגיאה הבאה כשניסיתם להתחבר לאשכול:

error dialing backend: remote error: tls: internal error

בודקים של-AWS VPC DHCP options set אין ערך מותאם אישית ל-domain-name. כשמוגדר דומיין בהתאמה אישית, אי אפשר ליצור בקשת חתימה על אישור (CSR) ב-GKE ב-AWS.

פתרון

כדי לפתור את הבעיה, מבצעים אחת מהפעולות הבאות:

  • מגדירים את enableDnsHostnames ל-false ב-VPC. אם יוצרים רשת VPC ייעודית ב-AWS עם anthos-gke, אפשר להגדיר את הערך הזה בקובץ .terraform/modules/gke_vpc/modules/gke-vpc/main.tf.

  • מעדכנים את הערך של domain-name לברירת המחדל.

הפעלה מחדש של מישור הבקרה

אם מישור הבקרה לא מגיב, אפשר להפעיל מחדש את המופעים שלו. כשמפעילים מחדש מכונות של מישור הבקרה, ההגדרה נשארת כפי שהיא כי המצב נשמר בדיסקים מתמידים.

  1. בספרייה של anthos-aws, משתמשים ב-anthos-gke כדי להעביר את ההקשר לשירות הניהול.
    cd anthos-aws
    anthos-gke aws management get-credentials
  2. משתמשים ב-kubectl כדי לקבל את קבוצת היעד של AWS EC2 ממישור הבקרה שלכם מ-AWSCluster.

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

    הפלט כולל את השם של קבוצת היעד EC2 של מישור הבקרה. לדוגמה, gke-123456a7-controlplane.

  3. פותחים את מסוף AWS EC2. בחלונית הימנית, בוחרים באפשרות קבוצות מיקוד.

  4. לוחצים על סרגל החיפוש ומחפשים את קבוצת היעד. לוחצים על שם קבוצת היעד ואז על יעדים. תוצג רשימה של מופעי מישור הבקרה.

  5. לכל מופע בקבוצת היעד, מבצעים את השלבים הבאים:

    1. לוחצים על מזהה המכונה של המכונה. מופיעה מסוף המכונות של AWS EC2.

    2. לוחצים על מזהה המכונה.

    3. בוחרים באפשרות Actions -> Instance state -> terminate (פעולות -> מצב המופע -> סיום) כדי להסיר את המופע. מערכת EC2 יוצרת באופן אוטומטי מופע חדש עם אותו נפח אחסון EBS.

    4. חוזרים לדף 'קבוצות מיקוד'.

  6. אחרי שמסיימים את כל המופעים בקבוצה, חוזרים לדף Target Groups (קבוצות טירגוט).

  7. בקטע Registered Targets בדף, מחפשים את העמודה Status. לכל אחד מהמופעים צריך להיות סטטוס של תקין. אם אחת מהמכונות תקינה, מחכים כמה דקות ולוחצים על סמל הרענון ().

  8. אחרי שכל המופעים בקבוצת היעד תקינים, אפשר להמשיך לשלב הבא.

תיוג של רשתות משנה

‫GKE ב-AWS דורש תגים ברשתות משנה שמכילות נקודות קצה של מאזן עומסים. ‫GKE ב-AWS מתייג באופן אוטומטי את כל רשתות המשנה שצוינו בשדה spec.Networking.ServiceLoadBalancerSubnetIDs של משאב AWSCluster.

כדי להוסיף עוד תת-רשתות לאשכול המשתמשים, או כדי להחיל מחדש תגים על תת-רשתות קיימות, מבצעים את השלבים הבאים.

  1. בספרייה של anthos-aws, משתמשים ב-anthos-gke כדי להעביר את ההקשר לשירות הניהול.

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

  2. מקבלים את המזהה של ה-VPC של AWS באשכול באמצעות kubectl ושומרים אותו כמשתנה.

     export VPC_ID=$(\
     env HTTPS_PROXY=http://localhost:8118 \
     kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
    
  3. בודקים את תוכן המשתנים באמצעות echo. הפלט שיתקבל דומה ל-vpc-12345678abcdef0.

    echo $VPC_ID
    
  4. שומרים את מזהה האשכול במשתנה סביבה.

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

    אפשר לבדוק את המשתנה באמצעות echo:

    echo $CLUSTER_ID
    

    התשובה כוללת את מזהה האשכול.

    gke-12345678
    
  5. אם התקנתם את GKE ב-AWS ב-VPC ייעודי, אתם יכולים להשתמש בכלי aws של שורת הפקודה כדי לאחזר את מזהה רשת המשנה.

    בוחרים מבין האפשרויות הבאות:

    • ציבורי, אם רוצים לחשוף שירותים בתת-הרשת הציבורית.
    • פרטי, אם רוצים לחשוף שירותים ברשת המשנה הפרטית.
    • כמה רשתות משנה, אם רוצים לחשוף שירותים בכמה רשתות משנה.

    גלוי לכולם

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

    הפלט הוא אובייקט שמכיל את מזהה רשת המשנה. היא דומה ל-subnet-1234abcdefg. אפשר לבדוק את המשתנה באמצעות echo:

    echo $SUBNET_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)
    

    הפלט הוא אובייקט שמכיל את מזהה רשת המשנה. היא דומה ל-subnet-1234abcdefg. אפשר לבדוק את המשתנה באמצעות echo:

    echo $SUBNET_ID
    

    התשובה כוללת את מזהה רשת המשנה.

    subnet-012345678abcdef
    

    כמה תת-רשתות

    אם אתם משתמשים בכמה רשתות משנה עבור AWSNodePools (לדוגמה, אם אתם משתמשים בכמה אזורי זמינות), אתם צריכים לתייג את מזהי רשתות המשנה בנפרד.

    אפשר לאחזר את רשימת המזהים של תת-הרשתות באמצעות aws ec2 describe-subnets.

    כדי לקבל רשימה של כל רשתות המשנה הציבוריות, מריצים את הפקודה הבאה:

    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
    

    התשובה כוללת את מזהי רשתות המשנה.

    subnet-012345678abcdef
    subnet-abcdef123456789
    subnet-123456789abcdef
    
  6. מתייגים את רשת המשנה עם מזהה האשכול. אם יש לכם כמה רשתות משנה, בוחרים באפשרות 'כמה רשתות משנה'.

    רשת משנה יחידה

    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 ברשימה של מזהי רשתות המשנה, מופרדים ברווחים. לדוגמה, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.

שגיאה במחיקת האשכולות

אם kubectl לא מגיב כשמנסים למחוק אשכול משתמשים או לקבל את האירועים של האשכול. יכול להיות שתראו את האירוע הבא.

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

פתרון

מחיקה של כל יעדי הטמעה של AWS Elastic File System ב-SECURITY_GROUP_ID.

שגיאות API

ב-Kubernetes 1.22, כמה ממשקי API הוצאו משימוש והוחלפו. אם שדרגתם את האשכול לגרסה 1.22 ואילך, כל הקריאות שהאפליקציה שלכם מבצעת לאחד ממשקי ה-API שהוצאו משימוש ייכשלו.

פתרון

צריך לשדרג את האפליקציה כדי להחליף את הקריאות ל-API שיצא משימוש בגרסאות חדשות יותר.

Snapshots

הכלי anthos-gke תומך ביצירת תמונות מצב של סביבת GKE on AWS. תמונת מצב מכילה מידע שיעזור לצוות התמיכה לשחזר ולנפות באגים בבעיות אופליין.Google Cloud

הכלי anthos-gke יכול ליצור תמונת מצב משירות ניהול או מאשכולות משתמשים. כברירת מחדל, קובץ snapshot כולל CRD, אירועים, מידע על האשכול, יומני אשכול, יומני מכונות וקבצים של מכונות. אתם יכולים להתאים אישית את המידע שכלול בקובץ תצורה. החבילה מכילה גם קובץ index.html עם קישורים לקבצים הכלולים.

אם רוצים לפתור בעיות בהתקנה של GKE ב-AWS לפני שפונים לתמיכה, אפשר לדלג אל הקטע הבא. Google Cloud

יצירת תמונה

בקטע הזה מוסבר איך ליצור תמונת מצב מאשכול ניהול או מאשכול משתמשים באמצעות הגדרת ברירת המחדל או הגדרה בהתאמה אישית.

לפני שמתחילים

כדי להתחבר למשאבי GKE ב-AWS, מבצעים את השלבים הבאים. בוחרים אם יש לכם רשת VPC קיימת ב-AWS (או חיבור ישיר לרשת ה-VPC) או אם יצרתם רשת VPC ייעודית כשבניתם את שירות הניהול.

VPC קיים

אם יש לכם חיבור ישיר או חיבור VPN ל-VPC קיים, אל תכללו את השורה env HTTP_PROXY=http://localhost:8118 בפקודות שמופיעות בנושא הזה.

VPC ייעודי

כשיוצרים שירות ניהול ב-VPC ייעודי, GKE on AWS כולל מארח bastion בתת-רשת ציבורית.

כדי להתחבר לשירות הניהול:

  1. עוברים לספרייה עם ההגדרה של GKE ב-AWS. יצרתם את הספרייה הזו כשהתקנתם את שירות הניהול.

    cd anthos-aws

  2. כדי לפתוח את המנהרה, מריצים את הסקריפט bastion-tunnel.sh. המנהרה מעבירה את הנתונים אל localhost:8118.

    כדי לפתוח מנהרה ליעד המבוצר (bastion host), מריצים את הפקודה הבאה:

    ./bastion-tunnel.sh -N
    

    ההודעות ממנהרת ה-SSH מופיעות בחלון הזה. כשרוצים לסגור את החיבור, מפסיקים את התהליך באמצעות Control+C או סוגרים את החלון.

  3. פותחים טרמינל חדש ועוברים לספרייה anthos-aws.

    cd anthos-aws
  4. מוודאים שאפשר להתחבר לאשכול באמצעות kubectl.

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

    הפלט כולל את כתובת ה-URL של שרת ה-API של שירות הניהול.

  • בספרייה של 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 עם הנתיב למפתח ה-SSH שלכם ב-GKE ב-AWS. כברירת מחדל, הקובץ נוצר ב-.ssh/anthos-gke.
  • workspace עם הנתיב לספרייה שבה יצרתם את הפריסה של GKE ב-AWS. אם נוצר יעד מבוצר (bastion host) כחלק מהתקנה ייעודית של VPC, ‏ GKE on AWS משתמש ב-bastion כדי להתחבר לשירות הניהול שלכם.

הפלט כולל את יומן הפעולות ואת השם של קובץ תמונת המצב:

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 עם הנתיב למפתח ה-SSH שלכם ב-GKE ב-AWS. כברירת מחדל, הקובץ נוצר ב-.ssh/anthos-gke.
  • terraform-workspace עם הנתיב לסביבת העבודה של Terraform שבה יצרתם את הפריסה של GKE ב-AWS.

הפלט כולל את יומן הפעולות ואת השם של קובץ תמונת המצב:

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.

שינוי התצורה של התמונה

כדי לשנות את הגדרת ברירת המחדל של התמונה, קודם משתמשים ב-anthos-gke עם האפשרות --dry-run ושומרים את הפלט בקובץ. לאחר מכן, עורכים את ההגדרה ומריצים מחדש את anthos-gke עם ההגדרה החדשה.

יצירת קובץ הגדרה לשירות הניהול

  1. משתמשים באפשרות anthos-gke עם האפשרות --dry-run ומפנים את הפלט לקובץ בשם 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 עם הנתיב למפתח ה-SSH שלכם ב-GKE ב-AWS. כברירת מחדל, הקובץ נוצר ב-~/.ssh/anthos-gke.
    • workspace עם הנתיב לספרייה שבה יצרתם את הפריסה של GKE ב-AWS.

  1. עורכים את הקובץ 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
  1. מסירים פקודות שלדעתכם חושפות מידע אישי רגיש.

  2. מריצים את הפקודה 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 עם הנתיב למפתח ה-SSH שלכם ב-GKE ב-AWS. כברירת מחדל, הקובץ נוצר ב-.ssh/anthos-gke.
    • terraform-workspace עם הנתיב לסביבת העבודה של Terraform שבה יצרתם את הפריסה של GKE ב-AWS.

יצירת קובץ תצורה לאשכול משתמשים

  1. משתמשים ב-anthos-gke עם האפשרות --dry-run ומפנים את הפלט לקובץ בשם 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 עם הנתיב למפתח ה-SSH שלכם ב-GKE ב-AWS. כברירת מחדל, הקובץ נוצר ב-~/.ssh/anthos-gke.
    • workspace עם הנתיב לספרייה שבה יצרתם את הפריסה של GKE ב-AWS.

  1. עורכים את הקובץ 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
  1. מסירים פקודות שלדעתכם חושפות מידע אישי רגיש.

  2. מריצים את הפקודה 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 עם הנתיב למפתח ה-SSH שלכם ב-GKE ב-AWS. כברירת מחדל, הקובץ נוצר ב-.ssh/anthos-gke.
    • terraform-workspace עם הנתיב לסביבת העבודה של Terraform שבה יצרתם את הפריסה של GKE ב-AWS.

תוכן ברירת המחדל של תמונות המצב

מבוא

בקטע הזה מוצגות דוגמאות לעצי קבצים שנכללים בתמונת המצב שמוגדרת כברירת מחדל לשירות ניהול ולמקטורת משתמשים.

שירות ניהול

העץ הבא הוא דוגמה לקבצים בתוך תמונת מצב של אשכול ניהול.

.
├── 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