Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWSSupport-SetupK8sApiProxyForEKS
Deskripsi
Runbook AWSSupport-SetupK8sApiProxyForEKS otomatisasi menyediakan cara untuk membuat AWS Lambda fungsi yang bertindak sebagai proxy untuk membuat panggilan API bidang kontrol ke titik akhir cluster Amazon Elastic Kubernetes Service. Ini berfungsi sebagai blok bangunan untuk runbook yang memerlukan pembuatan panggilan API bidang kontrol untuk mengotomatiskan tugas dan memecahkan masalah dengan cluster Amazon EKS.
penting
Semua sumber daya yang dibuat oleh otomatisasi ini ditandai sehingga dapat dengan mudah ditemukan. Tag yang digunakan adalah:
-
AWSSupport-SetupK8sApiProxyForEKS: benar
catatan
-
Otomatisasi adalah runbook pembantu dan tidak dapat dieksekusi sebagai runbook mandiri. Ini dipanggil sebagai otomatisasi anak untuk runbook yang memerlukan panggilan API bidang kontrol ke cluster Amazon EKS.
-
Pastikan untuk menjalankan
Cleanupoperasi setelah penggunaan untuk menghindari menimbulkan biaya yang tidak diinginkan.
Jenis dokumen
Otomatisasi
Pemilik
Amazon
Platform
Linux
Parameter
-
AutomationAssumeRole
Tipe: String
Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) dari peran AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Manajer Sistem untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Sistem Manajer Otomasi menggunakan izin pengguna yang memulai runbook ini.
-
ClusterName
Tipe: String
Deskripsi: (Diperlukan) Nama cluster Layanan Amazon Elastic Kubernetes.
-
Operasi
Tipe: String
Deskripsi: (Diperlukan) Operasi untuk melakukan: menyediakan
Setupfungsi Lambda di akun,Cleanupakan membatalkan penyediaan sumber daya yang dibuat sebagai bagian dari fase penyiapan.Nilai yang Diizinkan:
Setup|CleanupDefault: Pengaturan
-
LambdaRoleArn
Tipe: String
Deskripsi: (Opsional) ARN dari peran IAM yang memungkinkan AWS Lambda fungsi mengakses AWS layanan dan sumber daya yang diperlukan. Jika tidak ada peran yang ditentukan, Otomatisasi Manajer Sistem ini akan membuat satu peran IAM untuk Lambda di akun Anda dengan nama
Automation-K8sProxy-Role-<ExecutionId>yang menyertakan kebijakan terkelola:AWSLambdaBasicExecutionRoledan.AWSLambdaVPCAccessExecutionRole
Bagaimana cara kerjanya?
Runbook melakukan langkah-langkah berikut:
-
Memvalidasi bahwa otomatisasi berjalan sebagai eksekusi anak. Runbook tidak akan berfungsi saat dipanggil sebagai runbook mandiri karena tidak melakukan pekerjaan yang berarti dengan sendirinya.
-
Memeriksa CloudFormation tumpukan yang ada untuk fungsi Lambda proxy untuk cluster yang ditentukan.
-
Jika tumpukan ada, infrastruktur yang ada digunakan kembali alih-alih membuatnya kembali.
-
Penghitung referensi dipertahankan menggunakan tag untuk memastikan runbook tidak menghapus infrastruktur jika digunakan kembali oleh runbook lain untuk cluster yang sama.
-
-
Lakukan jenis operasi (
Setup/Cleanup) yang ditentukan untuk pemanggilan:-
Pengaturan: Membuat atau menjelaskan sumber daya yang ada.
Pembersihan: Menghapus sumber daya yang disediakan, jika infrastruktur tidak digunakan oleh runbook lainnya.
-
Izin IAM yang Diperlukan
AutomationAssumeRoleParameter memerlukan izin berikut yang diberikan tidak LambdaRoleArn dilewatkan:
-
cloudformation:CreateStack -
cloudformation:DescribeStacks -
cloudformation:DeleteStack -
cloudformation:UpdateStack -
ec2:CreateNetworkInterface -
ec2:DescribeNetworkInterfaces -
ec2:DescribeRouteTables -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcs -
ec2:DeleteNetworkInterface -
eks:DescribeCluster -
lambda:CreateFunction -
lambda:DeleteFunction -
lambda:ListTags -
lambda:GetFunction -
lambda:ListTags -
lambda:TagResource -
lambda:UntagResource -
lambda:UpdateFunctionCode -
logs:CreateLogGroup -
logs:PutRetentionPolicy -
logs:TagResource -
logs:UntagResource -
logs:DescribeLogGroups -
logs:DescribeLogStreams -
logs:ListTagsForResource -
iam:CreateRole -
iam:AttachRolePolicy -
iam:DetachRolePolicy -
iam:PassRole -
iam:GetRole -
iam:DeleteRole -
iam:TagRole -
iam:UntagRole -
tag:GetResources -
tag:TagResources
Ketika LambdaRoleArn disediakan, otomatisasi tidak perlu membuat peran dan izin berikut dapat dikecualikan:
-
iam:CreateRole -
iam:DeleteRole -
iam:TagRole -
iam:UntagRole -
iam:AttachRolePolicy -
iam:DetachRolePolicy
Di bawah ini adalah contoh kebijakan yang menunjukkan izin yang diperlukan untuk
AutomationAssumeRole saat tidak LambdaRoleArn dilewati:
Jika LambdaRoleArn dilewati, pastikan bahwa itu memiliki AWSLambdaBasicExecutionRole
Sumber Daya yang Dibuat
Sumber daya berikut dibuat selama Setup operasi:
-
AWS Lambda fungsi
-
Peran IAM: Peran eksekusi Lambda, jika tidak disediakan.
-
CloudWatch Grup Log (Lambda Logs)
Fungsi lambda dan peran eksekusi dipertahankan sampai Cleanup operasi dijalankan. Grup log lambda akan disimpan selama 30 hari atau sampai dihapus secara manual.
Instruksi
Runbook adalah utilitas pembantu yang dirancang untuk dieksekusi dari dalam runbook lain sebagai otomatisasi anak. Ini memfasilitasi pembuatan infrastruktur yang memungkinkan runbook induk membuat panggilan API pesawat kontrol Amazon EKS K8s. Untuk menggunakan runbook, Anda dapat mengikuti langkah-langkah di bawah ini dari konteks otomatisasi induk.
-
Fase Pen yiapan: Memanggil otomatisasi menggunakan operasi
aws:executeAutomationtindakan dari runbook yang ingin membuat panggilan API bidang kontrol Amazon EKS K8s dengan operasi disetel ke.SetupContoh parameter input:
{ "AutomationAssumeRole": "<role-arn>", "ClusterName": "<eks-cluster-name>", "Operation": "Setup" }Output dari
aws:executeAutomationlangkah akan berisi ARN dari fungsi proxy Lambda. -
Menggunakan Proxy Lambda: Memanggil fungsi Lambda di dalam
aws:executeScripttindakan menggunakanboto3'sLambda.Client.invoke(...)dengan daftar jalur panggilan API dan token pembawa. Fungsi Lambda akan melakukanGETpanggilan HTTP ke jalur yang ditentukan dengan meneruskan token pembawa sebagai bagian dari header otorisasi.Contoh peristiwa panggil Lambda:
{ "ApiCalls": ["/api/v1/pods/", ...], "BearerToken": "..." }catatan
Token pembawa harus dibuat sebagai bagian dari skrip otomatisasi induk. Anda perlu memastikan kepala sekolah yang menjalankan runbook induk memiliki izin baca-saja ke cluster Amazon EKS yang ditentukan.
-
Fase Pembersihan: Memanggil otomatisasi menggunakan operasi
aws:executeAutomationtindakan dari runbook yang ingin membuat panggilan API bidang kontrol Amazon EKS K8s dengan operasi disetel ke.CleanupContoh parameter input:
{ "AutomationAssumeRole": "<role-arn>", "ClusterName": "<eks-cluster-name>", "Operation": "Cleanup" }
Langkah Otomatisasi
-
ValidateExecution
-
Memverifikasi bahwa otomatisasi tidak berjalan sebagai eksekusi mandiri.
-
-
CheckForExistingStack
-
Memeriksa apakah CloudFormation tumpukan sudah disediakan untuk nama cluster yang ditentukan.
-
Mengembalikan status keberadaan tumpukan dan apakah aman untuk dihapus.
-
-
BranchOnIsStackExists
-
Langkah keputusan yang bercabang berdasarkan keberadaan tumpukan.
-
Rute untuk memperbarui nama tumpukan yang ada atau melanjutkan dengan percabangan operasi.
-
-
UpdateStackName
-
Memperbarui
StackNamevariabel dengan nama tumpukan yang ada. -
Hanya dieksekusi jika tumpukan sudah ada.
-
-
BranchOnOperation
-
Merutekan otomatisasi berdasarkan
Operationparameter (Setup/Cleanup). -
Untuk
Setup: Rute untuk membuat tumpukan baru atau menjelaskan sumber daya yang ada. -
Untuk
Cleanup: Lanjutkan ke penghapusan tumpukan jika aman untuk dihapus.
-
-
GetClusterNetworkConfig
-
Menjelaskan cluster Amazon EKS untuk mendapatkan konfigurasi VPC.
-
Mengambil titik akhir, ID VPC, ID subnet, ID grup keamanan, dan data CA.
-
-
ProvisionResources
-
Membuat CloudFormation tumpukan dengan sumber daya yang dibutuhkan.
-
Penyediaan fungsi Lambda dengan konfigurasi jaringan yang diperlukan.
-
Menandai semua sumber daya untuk pelacakan dan manajemen.
-
-
DescribeStackResources
-
Mengambil informasi tentang created/existing tumpukan.
-
Mendapat ARN dari fungsi Lambda yang disediakan.
-
-
BranchOnIsLambdaDeploymentRequired
-
Menentukan apakah penerapan kode Lambda diperlukan.
-
Hanya melanjutkan ke penerapan untuk tumpukan yang baru dibuat.
-
-
DeployLambdaFunctionCode
-
Menyebarkan kode fungsi Lambda menggunakan paket penerapan.
-
Memperbarui fungsi dengan implementasi proxy.
-
-
AssertLambdaAvailable
-
Memverifikasi bahwa pembaruan kode fungsi Lambda berhasil.
-
Menunggu fungsi dalam
Successfulkeadaan.
-
-
PerformStackCleanup
-
Menghapus CloudFormation tumpukan dan sumber daya terkait.
-
Dieksekusi selama
Cleanupoperasi atau pada kegagalanSetupoperasi.
-
Keluaran
LambdaFunctionArn: ARN dari fungsi proxy Lambda
Referensi
Otomatisasi Systems Manager