Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWSSupport-TroubleshootEKSDNSFailure
Deskripsi
AWSSupport-TroubleshootEKSDNSFailureRunbook membantu memecahkan masalah dengan pod dan konfigurasi CoreDNS di Amazon Elastic Kubernetes Service (Amazon EKS) saat aplikasi atau pod mengalami kegagalan resolusi DNS. Runbook memvalidasi pengaturan DNS VPC, memeriksa penerapan CoreDNS dan, memeriksa konfigurasi Horizontal Pod Autoscaler (HPA) ConfigMap, mengumpulkan log CoreDNS, dan melakukan pemeriksaan resolusi DNS pada node pekerja. Secara opsional, instance Amazon Elastic Compute Cloud yang menyelidik dapat dibuat di subnet yang sama dengan node pekerja bermasalah untuk melakukan pemeriksaan resolusi DNS tanpa memerlukan akses langsung ke node.
penting
Mode otentikasi klaster Amazon EKS harus disetel ke API atauAPI_AND_CONFIG_MAP. Runbook ini menerapkan fungsi ( AWS Lambda Lambda) sebagai proxy untuk membuat panggilan API Kubernetes yang diautentikasi dan membersihkan semua sumber daya yang dibuat di akhir eksekusi.
Jenis dokumen
Otomatisasi
Pemilik
Amazon
Platform
Linux,macOS, Windows
Parameter
-
AutomationAssumeRole
Jenis: AWS::IAM::Role: :Arn
Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) peran AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Systems Manager untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Systems Manager Automation menggunakan izin pengguna yang memulai runbook ini.
-
EksClusterName
Tipe: String
Deskripsi: (Wajib) Nama kluster Amazon EKS target.
-
DnsName
Tipe: String
Standar: amazon.com
Deskripsi: (Opsional) Sufiks domain rintisan untuk nama domain yang gagal diselesaikan oleh aplikasi atau pod.
-
ProblematicNodeInstanceId
Jenis: AWS::EC2::Instance: :Id
Deskripsi: (Opsional) ID instance node pekerja tempat aplikasi yang mengalami kesalahan resolusi DNS sedang berjalan. Saat disediakan, runbook akan membuat instans Amazon EC2 probing di subnet yang sama untuk melakukan pemeriksaan resolusi DNS. Gunakan parameter ini jika node pekerja tidak berada dalam subnet publik atau jika menginstal
bind-utilspada node pekerja tidak diizinkan. -
CoreDnsNamespace
Tipe: String
Default: kube-system
Deskripsi: (Opsional) Namespace Kubernetes untuk pod CoreDNS.
-
S3 BucketName
Jenis: AWS::S3::Bucket: :Nama
Deskripsi: (Opsional) Nama bucket Amazon Simple Storage Service tempat log pemecahan masalah CoreDNS diunggah.
-
LambdaRoleArn
Jenis: AWS::IAM::Role: :Arn
Deskripsi: (Opsional) ARN peran IAM untuk fungsi proxy Lambda. Jika tidak disediakan, buku runbook akan membuat peran yang diberi nama
Automation-K8sProxy-Role-<ExecutionId>dengan kebijakan yangAWSLambdaVPCAccessExecutionRoledikelolaAWSLambdaBasicExecutionRoledan dikelola. Disarankan untuk memberikan peran Anda sendiri.
Izin IAM yang diperlukan
AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.
-
eks:DescribeCluster -
ec2:DescribeVpcs -
ec2:DescribeInstances -
ec2:DescribeSubnets -
ec2:DescribeSecurityGroups -
cloudformation:CreateStack -
cloudformation:DescribeStacks -
cloudformation:DeleteStack -
lambda:InvokeFunction -
s3:GetBucketPublicAccessBlock -
s3:GetBucketAcl -
s3:PutObject -
ssm:DescribeInstanceInformation -
ssm:SendCommand -
ssm:GetCommandInvocation -
ssm:StartAutomationExecution -
ssm:GetAutomationExecution
Langkah Dokumen
-
AssertIfTargetClusterExists- Memverifikasi bahwa klaster Amazon EKS yang ditentukanEksClusterNameada dan berada dalamACTIVEstatus. Jika cluster tidak ditemukan atau tidak aktif, runbook melompat ke.GenerateReport -
UpdateEksClusterExists- MenetapkaneksClusterExistsvariabel internaltrueuntuk digunakan dalam pembuatan laporan. -
GetVpcDnsSettings- MengambilenableDnsSupportdanenableDnsHostnamespengaturan untuk Amazon Virtual Private Cloud yang terkait dengan cluster Amazon EKS. -
BranchOnVpcDnsSettings- Memeriksa apakah kedua pengaturan DNS VPC diaktifkan. Jika salah satu dinonaktifkan, runbook melompat ke.GenerateReportJika tidak, lanjutkan keDeployK8sAuthApisResources. -
DeployK8sAuthApisResources- MengeksekusiAWSSupport-SetupK8sApiProxyForEKSuntuk menerapkan fungsi Lambda sebagai proxy untuk membuat panggilan API Kubernetes yang diautentikasi ke cluster Amazon EKS. -
RetrieveCoreDNSDeployment- Mengambil informasi tentang penerapan CoreDNS, termasuk kesiapan pod, status container, dan kesiapan node yang menghosting pod CoreDNS. Juga mengambil IP cluster CoreDNS. -
RetrieveAndInspectCoreDNSConfigMap- Mengambil ConfigMap CoreDNS dari kluster Amazon EKS dan memeriksa masalah konfigurasi, termasuk pengaturan domain rintisan untuk domain yang ditentukan.DnsName -
ValidateHpaConfiguration- Memeriksa apakah Horizontal Pod Autoscaler (HPA) dikonfigurasi untuk penerapan CoreDNS di namespace yang ditentukan. -
CheckS3BucketPublicStatus- Memvalidasi bahwa bucket Amazon S3 yang ditentukanS3BucketNametidak mengizinkan akses baca atau tulis publik atau anonim. -
CollectLogToS3- Mengumpulkan log pod CoreDNS dan mengunggahnya ke bucket Amazon S3 yang ditentukan. -
BranchOnProblematicNodeInstanceId- MemeriksaProblematicNodeInstanceIdapakah disediakan dan node host CoreDNS ada. Jika kedua kondisi terpenuhi, lanjutkan keVerifyThatProblematicNodeInstanceBelongsToCluster. Jika tidak, cabang keBranchOnCoreDnsDeployment. -
VerifyThatProblematicNodeInstanceBelongsToCluster- Mengonfirmasi bahwa instance yang ditentukanProblematicNodeInstanceIdadalah node pekerja di cluster Amazon EKS. -
UpdateProblematicNodeInstanceStanding- MengaturproblematicNodeInstanceStandingvariabel internal ketrue. -
GetProblematicInstanceDetails- Mengambil ID AMI, tipe instans, ID subnet, dan ID grup keamanan dari node pekerja bermasalah untuk digunakan saat membuat instance Amazon EC2 yang sedang diperiksa. -
CreateProbingInfrastructure- Membuat profil instans dan memeriksa instans Amazon EC2 melalui AWS CloudFormation tumpukan di subnet yang sama dengan node pekerja bermasalah. Tumpukan diberi namaAWSSupport-TroubleshootEKSDNSFailure-<ExecutionId>. -
GetProbingInstanceId- Mengambil ID instans Amazon EC2 probing dari CloudFormation output stack. -
WaitForProbingInstanceSSMAgentStateToBeOnline- Menunggu Agen Amazon EC2 Systems Manager pada instans Amazon EC2 yang sedang menyelidiki untukOnlinemelaporkan status sebelum melanjutkan. -
RetrieveCoreDNSPodsIPFromProblematicNode- Mengambil alamat IP pod CoreDNS seperti yang terlihat dari node pekerja bermasalah. -
PerformDNSResolutionOnProbingEC2Instance- Menjalankan pemeriksaan resolusi DNS pada instans Amazon EC2 probing menggunakan IP cluster dan IP pod CoreDNS. -
DeleteCloudFormationStack- Menghapus CloudFormation tumpukan yang membuat instans Amazon EC2 dan profil instans yang sedang diperiksa. -
UpdateCfnStackDeleted- MengaturcfnStackDeletedvariabel internal ketrue. -
BranchOnCoreDnsDeployment- MemeriksaProblematicNodeInstanceIdapakah tidak disediakan dan node host CoreDNS ada. Jika kedua kondisi terpenuhi, lanjutkan kePerformDNSResolutionOnCoreDnsWorkerNodes. Jika tidak, lanjutkan keCleanupK8sAuthenticationInfrastructure. -
BranchOnCoreDnsNodesExistForRunCommandSteps- Memeriksa apakah node host CoreDNS ada sebelum menjalankan langkah-langkah.aws:runCommandJika tidak ada node (misalnya, ketika CoreDNS memiliki nol replika), lompat ke.CleanupK8sAuthenticationInfrastructure -
PerformDNSResolutionOnCoreDnsWorkerNodes- Menjalankan pemeriksaan resolusi DNS langsung pada node pekerja CoreDNS menggunakan IP cluster dan IP pod CoreDNS. -
VerifyNameserverMatchAndKubeProxyLogsAndIPTableEntries- Memverifikasi bahwa IP nameserver cocok dengan IP cluster, memeriksa akses pod kube-proxy ke server API, dan memvalidasi entri iptables kube-dns pada node pekerja CoreDNS. -
VerifyPPSThrottlingOnENIs- Memeriksa batas DNS packets-per-second (PPS) per Elastic Network Interface (ENI) pada node pekerja CoreDNS untuk mengidentifikasi potensi pelambatan. -
UpdateChecksOnNodes- MenetapkanchecksOnNodesvariabel internaltrueuntuk menunjukkan bahwa pemeriksaan tingkat simpul dilakukan. -
CleanupK8sAuthenticationInfrastructure- MengeksekusiAWSSupport-SetupK8sApiProxyForEKSdenganCleanupoperasi untuk menghapus fungsi proxy Lambda dan sumber daya terkait yang dibuat selama otomatisasi. -
UpdateK8sInfrastructreDeleted- MengaturK8sInfrastructreDeletedvariabel internal ketrue. -
CleanUpAllResources- Melakukan pembersihan komprehensif dari sumber daya yang tersisa, termasuk fungsi proxy CloudFormation stack dan Lambda, jika langkah pembersihan sebelumnya tidak berhasil diselesaikan. -
CollectOutputFromAllRunCommandSteps- Mengumpulkan dan mengkonsolidasikan output dari semuaaws:runCommandlangkah yang dijalankan selama otomatisasi. -
GenerateReport- Mengompilasi hasil dari semua langkah sebelumnya ke dalam laporan evaluasi komprehensif yang mencakup pengaturan DNS VPC, kesehatan penerapan CoreDNS, konfigurasi, ConfigMap konfigurasi HPA, status pengumpulan log, dan hasil pemeriksaan resolusi DNS.
Keluaran
GenerateReport.EvalReport- Laporan komprehensif dari semua pemeriksaan pemecahan masalah DNS yang dilakukan, termasuk temuan dan langkah-langkah perbaikan yang direkomendasikan.