Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pantau lalu lintas beban kerja Kubernetes dengan Observabilitas Jaringan Kontainer
Amazon EKS menyediakan fitur observabilitas jaringan yang disempurnakan yang memberikan wawasan lebih dalam tentang lingkungan jaringan kontainer Anda. Kemampuan ini membantu Anda lebih memahami, memantau, dan memecahkan masalah lanskap jaringan Kubernetes Anda. AWS Dengan observabilitas jaringan kontainer yang ditingkatkan, Anda dapat memanfaatkan metrik granular terkait jaringan untuk deteksi anomali proaktif yang lebih baik di seluruh lalu lintas cluster, aliran lintas-AZ, dan layanan. AWS Dengan menggunakan metrik ini, Anda dapat mengukur kinerja sistem dan memvisualisasikan metrik yang mendasarinya menggunakan tumpukan observabilitas pilihan Anda.
Selain itu, Amazon EKS sekarang menyediakan visualisasi pemantauan jaringan di AWS konsol yang mempercepat dan meningkatkan pemecahan masalah yang tepat untuk analisis akar penyebab yang lebih cepat. Anda juga dapat memanfaatkan kemampuan visual ini untuk menentukan pembicara teratas dan arus jaringan yang menyebabkan transmisi ulang dan batas waktu transmisi ulang, menghilangkan titik buta selama insiden.
Kemampuan ini diaktifkan oleh Amazon CloudWatch Network Flow Monitor.
Kasus penggunaan
Ukur kinerja jaringan untuk mendeteksi anomali
Beberapa tim melakukan standarisasi pada tumpukan observabilitas yang memungkinkan mereka mengukur kinerja sistem mereka, memvisualisasikan metrik sistem, dan waspada jika ambang tertentu dilanggar. Observabilitas jaringan kontainer di EKS sejalan dengan ini dengan mengekspos metrik sistem kunci yang dapat Anda kikis untuk memperluas observabilitas kinerja jaringan sistem Anda di tingkat pod dan node pekerja.
Manfaatkan visualisasi konsol untuk pemecahan masalah yang lebih tepat
Jika terjadi alarm dari sistem pemantauan Anda, Anda mungkin ingin mengasah klaster dan beban kerja dari mana masalah berasal. Untuk mendukung hal ini, Anda dapat memanfaatkan visualisasi di konsol EKS yang mempersempit ruang lingkup investigasi di tingkat cluster, dan mempercepat pengungkapan aliran jaringan yang bertanggung jawab atas sebagian besar transmisi ulang, batas waktu transmisi ulang, dan volume data yang ditransfer.
Lacak pembicara teratas di lingkungan Amazon EKS Anda
Banyak tim menjalankan EKS sebagai fondasi untuk platform mereka, menjadikannya titik fokus untuk aktivitas jaringan lingkungan aplikasi. Dengan menggunakan kemampuan pemantauan jaringan dalam fitur ini, Anda dapat melacak beban kerja mana yang bertanggung jawab atas sebagian besar lalu lintas (diukur dengan volume data) di dalam cluster, lintas AZs, serta lalu lintas ke tujuan eksternal di dalam AWS (DynamoDB dan S3) dan di luar cloud (internet atau AWS on-prem). Selain itu, Anda dapat memantau kinerja masing-masing aliran ini berdasarkan transmisi ulang, batas waktu transmisi ulang, dan data yang ditransfer.
Fitur
-
Metrik kinerja - Fitur ini memungkinkan Anda untuk mengikis metrik sistem terkait jaringan untuk pod dan node pekerja langsung dari Agen Network Flow Monitor (NFM) yang berjalan di cluster EKS Anda.
-
Peta layanan - Fitur ini secara dinamis memvisualisasikan interkomunikasi antar beban kerja di klaster, memungkinkan Anda untuk dengan cepat mengungkapkan metrik kunci (transmisi ulang - RT, batas waktu transmisi ulang - RTO, dan data yang ditransfer - DT) yang terkait dengan aliran jaringan antara pod yang berkomunikasi.
-
Tabel alur - Dengan tabel ini, Anda dapat memantau pembicara teratas di seluruh beban kerja Kubernetes di klaster Anda dari tiga sudut yang berbeda: tampilan AWS layanan, tampilan klaster, dan tampilan eksternal. Untuk setiap tampilan, Anda dapat melihat transmisi ulang, batas waktu transmisi ulang, dan data yang ditransfer antara pod sumber dan tujuannya.
-
AWS tampilan layanan: Menampilkan pembicara teratas ke AWS layanan (DynamoDB dan S3)
-
Tampilan cluster: Menampilkan pembicara teratas di dalam cluster (timur ← ke → barat)
-
Tampilan eksternal: Menampilkan pembicara teratas ke tujuan cluster-eksternal di luar AWS
-
Memulai
Untuk memulai, aktifkan Container Network Observability di konsol EKS untuk cluster baru atau yang sudah ada. Ini akan mengotomatiskan pembuatan dependensi Network Flow Monitor (NFM) (sumber daya Lingkup dan Monitor). Selain itu, Anda harus menginstal add-on Network Flow Monitor Agent. Atau, Anda dapat menginstal dependensi ini menggunakan AWS CLI, EKS APIs (untuk add-on), NFM APIs atau Infrastruktur sebagai Kode (seperti Terraform).
Saat menggunakan Network Flow Monitor di EKS, Anda dapat mempertahankan alur kerja observabilitas dan tumpukan teknologi yang ada sambil memanfaatkan serangkaian fitur tambahan yang selanjutnya memungkinkan Anda memahami dan mengoptimalkan lapisan jaringan lingkungan EKS Anda. Anda dapat mempelajari lebih lanjut tentang harga Network Flow Monitor di sini.
Prasyarat dan catatan penting
-
Seperti disebutkan di atas, jika Anda mengaktifkan Observabilitas Jaringan Kontainer dari konsol EKS, dependensi sumber daya NFM yang mendasarinya (Lingkup dan Monitor) akan dibuat secara otomatis atas nama Anda, dan Anda akan dipandu melalui proses instalasi add-on EKS untuk NFM.
-
Jika Anda ingin mengaktifkan fitur ini menggunakan Infrastructure as Code (IAc) seperti Terraform, Anda harus menentukan dependensi berikut di IAc Anda: NFM Scope, NFM Monitor, EKS add-on untuk NFM. Selain itu, Anda harus memberikan izin yang relevan ke add-on EKS menggunakan Pod Identity atau peran IAM untuk akun layanan (IRSA).
-
Anda harus menjalankan versi minimum 1.1.0 untuk add-on EKS agen NFM.
-
Anda harus menggunakan v6.21.0 atau lebih tinggi dari AWS Penyedia Terraform
untuk mendukung sumber daya Network Flow Monitor.
Izin IAM yang diperlukan
Pengaya EKS untuk agen NFM
Anda dapat menggunakan kebijakan CloudWatchNetworkFlowMonitorAgentPublishPolicyAWS terkelola dengan Pod Identity. Kebijakan ini berisi izin bagi agen NFM untuk mengirim laporan telemetri (metrik) ke titik akhir Network Flow Monitor.
{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "networkflowmonitor:Publish" ], "Resource" : "*" } ] }
Observabilitas Jaringan Kontainer di konsol EKS
Izin berikut diperlukan untuk mengaktifkan fitur dan memvisualisasikan peta layanan dan tabel alur di konsol.
{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Action": [ "networkflowmonitor:ListScopes", "networkflowmonitor:ListMonitors", "networkflowmonitor:GetScope", "networkflowmonitor:GetMonitor", "networkflowmonitor:CreateScope", "networkflowmonitor:CreateMonitor", "networkflowmonitor:TagResource", "networkflowmonitor:StartQueryMonitorTopContributors", "networkflowmonitor:StopQueryMonitorTopContributors", "networkflowmonitor:GetQueryStatusMonitorTopContributors", "networkflowmonitor:GetQueryResultsMonitorTopContributors" ], "Resource": "*" } ] }
Menggunakan AWS CLI, EKS API dan NFM API
#!/bin/bash # Script to create required Network Flow Monitor resources set -e CLUSTER_NAME="my-eks-cluster" CLUSTER_ARN="arn:aws:eks:{Region}:{Account}:cluster/{ClusterName}" REGION="us-west-2" AGENT_NAMESPACE="amazon-network-flow-monitor" echo "Creating Network Flow Monitor resources..." # Check if Network Flow Monitor agent is running in the cluster echo "Checking for Network Flow Monitor agent in cluster..." if kubectl get pods -n "$AGENT_NAMESPACE" --no-headers 2>/dev/null | grep -q "Running"; then echo "Network Flow Monitor agent exists and is running in the cluster" else echo "Network Flow Monitor agent not found. Installing as EKS addon..." aws eks create-addon \ --cluster-name "$CLUSTER_NAME" \ --addon-name "$AGENT_NAMESPACE" \ --region "$REGION" echo "Network Flow Monitor addon installation initiated" fi # Get Account ID ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) echo "Cluster ARN: $CLUSTER_ARN" echo "Account ID: $ACCOUNT_ID" # Check for existing scope echo "Checking for existing Network Flow Monitor Scope..." EXISTING_SCOPE=$(aws networkflowmonitor list-scopes --region $REGION --query 'scopes[0].scopeArn' --output text 2>/dev/null || echo "None") if [ "$EXISTING_SCOPE" != "None" ] && [ "$EXISTING_SCOPE" != "null" ]; then echo "Using existing scope: $EXISTING_SCOPE" SCOPE_ARN=$EXISTING_SCOPE else echo "Creating new Network Flow Monitor Scope..." SCOPE_RESPONSE=$(aws networkflowmonitor create-scope \ --targets "[{\"targetIdentifier\":{\"targetId\":{\"accountId\":\"${ACCOUNT_ID}\"},\"targetType\":\"ACCOUNT\"},\"region\":\"${REGION}\"}]" \ --region $REGION \ --output json) SCOPE_ARN=$(echo $SCOPE_RESPONSE | jq -r '.scopeArn') echo "Scope created: $SCOPE_ARN" fi # Create Network Flow Monitor with EKS Cluster as local resource echo "Creating Network Flow Monitor..." MONITOR_RESPONSE=$(aws networkflowmonitor create-monitor \ --monitor-name "${CLUSTER_NAME}-monitor" \ --local-resources "type=AWS::EKS::Cluster,identifier=${CLUSTER_ARN}" \ --scope-arn "$SCOPE_ARN" \ --region $REGION \ --output json) MONITOR_ARN=$(echo $MONITOR_RESPONSE | jq -r '.monitorArn') echo "Monitor created: $MONITOR_ARN" echo "Network Flow Monitor setup complete!" echo "Monitor ARN: $MONITOR_ARN" echo "Scope ARN: $SCOPE_ARN" echo "Local Resource: AWS::EKS::Cluster (${CLUSTER_ARN})"
Menggunakan Infrastruktur sebagai Kode (IAc)
Terraform
Jika Anda menggunakan Terraform untuk mengelola infrastruktur AWS cloud, Anda dapat menyertakan konfigurasi sumber daya berikut untuk mengaktifkan Pengamatan Jaringan Kontainer untuk klaster Anda.
Lingkup NFM
data "aws_caller_identity" "current" {} resource "aws_networkflowmonitor_scope" "example" { target { region = "us-east-1" target_identifier { target_type = "ACCOUNT" target_id { account_id = data.aws_caller_identity.current.account_id } } } tags = { Name = "example" } }
Monitor NFM
resource "aws_networkflowmonitor_monitor" "example" { monitor_name = "eks-cluster-name-monitor" scope_arn = aws_networkflowmonitor_scope.example.scope_arn local_resource { type = "AWS::EKS::Cluster" identifier = aws_eks_cluster.example.arn } remote_resource { type = "AWS::Region" identifier = "us-east-1" # this must be the same region that the cluster is in } tags = { Name = "example" } }
Pengaya EKS untuk NFM
resource "aws_eks_addon" "example" { cluster_name = aws_eks_cluster.example.name addon_name = "aws-network-flow-monitoring-agent" }
Bagaimana cara kerjanya?
Metrik kinerja
Metrik sistem
Jika Anda menjalankan perkakas pihak ketiga (3P) untuk memantau lingkungan EKS Anda (seperti Prometheus dan Grafana), Anda dapat mengikis metrik sistem yang didukung langsung dari agen Network Flow Monitor. Metrik ini dapat dikirim ke tumpukan pemantauan Anda untuk memperluas pengukuran kinerja jaringan sistem Anda di tingkat pod dan node pekerja. Metrik yang tersedia tercantum dalam tabel, di bawah Metrik sistem yang didukung.
Untuk mengaktifkan metrik ini, ganti variabel lingkungan berikut menggunakan variabel konfigurasi selama proses instalasi (lihat: https://aws.amazon.com/blogs/amazon-eks-add-onscontainers/
OPEN_METRICS: Enable or disable open metrics. Disabled if not supplied Type: String Values: [“on”, “off”] OPEN_METRICS_ADDRESS: Listening IP address for open metrics endpoint. Defaults to 127.0.0.1 if not supplied Type: String OPEN_METRICS_PORT: Listening port for open metrics endpoint. Defaults to 80 if not supplied Type: Integer Range: [0..65535]
Metrik tingkat aliran
Selain itu, Network Flow Monitor menangkap data aliran jaringan bersama dengan metrik tingkat aliran: transmisi ulang, batas waktu transmisi ulang, dan data yang ditransfer. Data ini diproses oleh Network Flow Monitor dan divisualisasikan di konsol EKS untuk memunculkan lalu lintas di lingkungan klaster Anda, dan bagaimana kinerjanya berdasarkan metrik tingkat aliran ini.
Diagram di bawah ini menggambarkan alur kerja di mana kedua jenis metrik (sistem dan tingkat aliran) dapat dimanfaatkan untuk mendapatkan lebih banyak kecerdasan operasional.
-
Tim platform dapat mengumpulkan dan memvisualisasikan metrik sistem di tumpukan pemantauan mereka. Dengan peringatan di tempat, mereka dapat mendeteksi anomali jaringan atau masalah yang memengaruhi pod atau node pekerja menggunakan metrik sistem dari agen NFM.
-
Sebagai langkah selanjutnya, tim platform dapat memanfaatkan visualisasi asli di konsol EKS untuk lebih mempersempit ruang lingkup penyelidikan dan mempercepat pemecahan masalah berdasarkan representasi aliran dan metrik terkait.
Catatan penting: Pengikisan metrik sistem dari agen NFM dan proses agen NFM yang mendorong metrik tingkat aliran ke backend NFM adalah proses independen.
Metrik sistem yang didukung
Catatan penting: metrik sistem diekspor dalam OpenMetrics
| Nama metrik | Jenis | Dimensi | Deskripsi |
|---|---|---|---|
|
ingress_flow |
Pengukur |
instance_id, iface, pod, namespace, simpul |
Jumlah aliran TCP masuknya () TcpPassiveOpens |
|
egress_flow |
Pengukur |
instance_id, iface, pod, namespace, simpul |
Hitungan aliran TCP keluar () TcpActiveOpens |
|
ingress_packets |
Pengukur |
instance_id, iface, pod, namespace, simpul |
Jumlah paket masuk (delta) |
|
egress_packets |
Pengukur |
instance_id, iface, pod, namespace, simpul |
Jumlah paket jalan keluar (delta) |
|
ingress_bytes |
Pengukur |
instance_id, iface, pod, namespace, simpul |
Jumlah byte masuk (delta) |
|
egress_bytes |
Pengukur |
instance_id, iface, pod, namespace, simpul |
Jumlah byte jalan keluar (delta) |
|
bw_in_allowance_exceeded |
Pengukur |
instance_id, eni, simpul |
Paket queued/dropped karena batas bandwidth masuk |
|
bw_out_allowance_exceeded |
Pengukur |
instance_id, eni, simpul |
Paket queued/dropped karena batas bandwidth keluar |
|
pps_allowance_exceeded |
Pengukur |
instance_id, eni, simpul |
Paket queued/dropped karena batas PPS dua arah |
|
conntrack_allowance_exceeded |
Pengukur |
instance_id, eni, simpul |
Paket jatuh karena batas pelacakan koneksi |
|
linklocal_allowance_exceeded |
Pengukur |
instance_id, eni, simpul |
Paket turun karena batas PPS layanan proxy lokal |
Metrik tingkat aliran yang didukung
| Nama metrik | Jenis | Deskripsi |
|---|---|---|
|
Transmisi ulang TCP |
Penghitung |
Berapa kali pengirim mengirim ulang paket yang hilang atau rusak selama transmisi. |
|
Batas waktu transmisi ulang TCP |
Penghitung |
Berapa kali pengirim memulai masa tunggu untuk menentukan apakah paket hilang dalam perjalanan. |
|
Data (byte) ditransfer |
Penghitung |
Volume data yang ditransfer antara sumber dan tujuan untuk aliran tertentu. |
Peta layanan dan tabel aliran
-
Saat diinstal, agen Network Flow Monitor berjalan sebagai a DaemonSet pada setiap node pekerja dan mengumpulkan 500 aliran jaringan teratas (berdasarkan volume data yang ditransfer) setiap 30 detik.
-
Aliran jaringan ini diurutkan ke dalam kategori berikut: Intra AZ, Inter AZ, EC2 → S3, → EC2 DynamoDB (DDB), dan Unclassified. Setiap aliran memiliki 3 metrik yang terkait dengannya: transmisi ulang, batas waktu transmisi ulang, dan data yang ditransfer (dalam byte).
-
Intra AZ - jaringan mengalir antar pod di AZ yang sama
-
Inter AZ - jaringan mengalir antar pod yang berbeda AZs
-
EC2 → S3 - jaringan mengalir dari pod ke S3
-
EC2 → DDB - jaringan mengalir dari pod ke DDB
-
Tidak diklasifikasikan - jaringan mengalir dari pod ke Internet atau on-prem
-
-
Alur jaringan dari Network Flow Monitor Top Contributors API digunakan untuk memberi daya pada pengalaman berikut di konsol EKS:
-
Peta layanan: Visualisasi aliran jaringan dalam cluster (Intra AZ dan Inter AZ).
-
Tabel alur: Tabel presentasi aliran jaringan di dalam cluster (Intra AZ dan Inter AZ), dari pod ke AWS layanan (EC2 → S3 dan EC2 → DDB), dan dari pod ke tujuan eksternal (Unclassified).
-
Alur jaringan yang ditarik dari Top Contributors API tercakup ke rentang waktu 1 jam, dan dapat mencakup hingga 500 aliran dari setiap kategori. Untuk peta layanan, ini berarti hingga 1000 aliran dapat bersumber dan disajikan dari kategori aliran Intra AZ dan Inter AZ selama rentang waktu 1 jam. Untuk tabel aliran, ini berarti bahwa hingga 3000 aliran jaringan dapat bersumber dan disajikan dari semua 6 kategori aliran jaringan selama rentang waktu 2 jam.
Contoh: Peta layanan
Tampilan penyebaran
Tampilan pod
Tampilan penyebaran
Tampilan pod
Contoh: Tabel aliran
AWS tampilan layanan
Tampilan cluster
Pertimbangan dan batasan
-
Observabilitas Jaringan Kontainer di EKS hanya tersedia di wilayah di mana Network Flow Monitor didukung.
-
Metrik sistem yang didukung dalam OpenMetrics format, dan dapat langsung dikikis dari agen Network Flow Monitor (NFM).
-
Untuk mengaktifkan Observabilitas Jaringan Kontainer di EKS menggunakan Infrastructure as Code (IAc) seperti Terraform
, Anda harus memiliki dependensi ini yang ditentukan dan dibuat dalam konfigurasi Anda: lingkup NFM, monitor NFM, dan agen NFM. -
Network Flow Monitor mendukung hingga sekitar 5 juta aliran per menit. Ini adalah sekitar 5.000 EC2 instance (node pekerja EKS) dengan agen Network Flow Monitor diinstal. Memasang agen pada lebih dari 5000 instans dapat memengaruhi kinerja pemantauan hingga kapasitas tambahan tersedia.
-
Anda harus menjalankan versi minimum 1.1.0 untuk add-on EKS agen NFM.
-
Anda harus menggunakan v6.21.0 atau lebih tinggi dari AWS Penyedia Terraform
untuk mendukung sumber daya Network Flow Monitor. -
Untuk memperkaya alur jaringan dengan metadata pod, pod Anda harus berjalan di namespace jaringan terisolasi mereka sendiri, bukan namespace jaringan host.