Hubungkan aplikasi Java di lingkungan Kubernetes umum ke Pemantauan Aplikasi ARMS untuk memantau topologi aplikasi, panggilan API, transaksi lambat dan tidak normal, serta kueri SQL.
Jika kluster Kubernetes Anda berjalan di Container Service for Kubernetes (ACK), topik ini tidak berlaku. Untuk menghubungkan kluster ACK ke ARMS, lihat Instal agen Java untuk ACK dan ACS menggunakan komponen ack-onepilot.
Prasyarat
-
Kluster Kubernetes Anda menjalankan versi 1.18 atau yang lebih baru.
-
Jika kluster Kubernetes Anda tidak dideploy di Alibaba Cloud, pastikan kluster tersebut dapat mengakses internet publik atau terhubung ke VPC Alibaba Cloud melalui Cloud Enterprise Network (CEN) atau metode lainnya.
Versi JDK Anda didukung oleh Pemantauan Aplikasi
Memori heap maksimum JVM (
-Xmx) minimal 256 MB
Metode 1: Hubungkan dengan kluster terdaftar di ACK One
Manfaat menggunakan kluster terdaftar di ACK One:
-
Dukungan O&M yang lebih efisien.
-
Akses ke lebih banyak kemampuan ekstensi kluster dari Container Service for Kubernetes (ACK), termasuk pemantauan, logging, backup dan restore, keamanan, serta sumber daya cloud elastis. Untuk informasi selengkapnya, lihat Ikhtisar kluster terdaftar.
-
Daftarkan kluster Kubernetes Anda ke ACK One. Untuk informasi selengkapnya, lihat Buat kluster terdaftar di ACK One.
-
Instal komponen ack-onepilot untuk kluster terdaftar tersebut. Untuk informasi selengkapnya, lihat Hubungkan kluster terdaftar ke Pemantauan Aplikasi ARMS.
Metode 2: Hubungkan langsung ke ARMS
Metode ini tidak menggunakan kluster terdaftar. Setelah Anda menghubungkan aplikasi, informasi terkait kontainer seperti penggunaan CPU, memori, disk, dan jaringan tidak dapat dikorelasikan atau ditampilkan. Akibatnya, halaman Application Instances hanya menampilkan data lingkungan kontainer yang dikumpulkan oleh ARMS. Anda juga tidak dapat melihat data kontainer dari agen Prometheus dengan menghubungkan ke Managed Service for Prometheus. Untuk informasi selengkapnya, lihat Pemantauan instans aplikasi Java.
Langkah 1: Instal Helm 3
Langkah 2: Instal agen
Pemantauan Aplikasi ARMS hanya mendukung aplikasi tanpa status (Deployment) dan stateful (StatefulSet). Metode koneksi sama untuk kedua jenis tersebut. Contoh berikut menggunakan aplikasi tanpa status (Deployment).
-
Jalankan perintah
wgetberikut untuk mengunduh paket instalasi ack-onepilot.wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.2.1.tgz' -
Jalankan perintah berikut untuk mengekstrak paket instalasi ack-onepilot.
tar xvf ack-onepilot-5.2.1.tgz -
Ubah parameter berikut dalam file values.yaml sesuai kebutuhan, lalu simpan file tersebut.
registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__-
registry: Registri image ack-onepilot. -
cluster_id: ID kluster Kubernetes kustom. ID ini harus unik dalam kluster. Format yang direkomendasikan adalah<uid>-<clusterid>. -
accessKeydanaccessKeySecret: ID AccessKey dan AccessKey Secret dari Akun Alibaba Cloud Anda. Untuk informasi cara memperolehnya, lihat Buat Pasangan Kunci Akses.Penting-
Pastikan akun Alibaba Cloud memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess.
-
Jika Anda menggunakan Pengguna RAM, pastikan Pengguna RAM tersebut juga memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess. Untuk petunjuknya, lihat Berikan izin kepada Pengguna RAM.
-
Untuk keamanan, Anda dapat menggunakan Kubernetes Secret untuk mengelola Pasangan Kunci Akses Anda. Untuk informasi selengkapnya, lihat Metode 2: Gunakan Kubernetes Secret untuk mengimpor Pasangan Kunci Akses.
-
-
uid: ID Akun Alibaba Cloud Anda. Untuk menemukan ID tersebut, arahkan kursor ke gambar profil Anda di pojok kanan atas Konsol Alibaba Cloud. -
region_id: ID wilayah Alibaba Cloud. Untuk daftar wilayah tempat Pemantauan Aplikasi tersedia, lihat Wilayah yang didukung.
CatatanJika kluster target adalah kluster edge, tambahkan anotasi nodeSelector untuk menjadwalkan komponen ack-onepilot pada node cloud. Hal ini memastikan ack-onepilot berfungsi dengan benar.
kind: Deployment apiVersion: apps/v1 metadata: name: xxx namespace: xxx spec: template: spec: nodeSelector: # Ganti dengan node selector yang sebenarnya. alibabacloud.com/is-edge-worker: "false" -
-
Jalankan perintah berikut untuk menginstal ack-onepilot.
Jalankan perintah ini dari luar direktori paket instalasi ack-onepilot.
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
Langkah 3: Ubah file YAML aplikasi
-
Jalankan perintah berikut untuk melihat file YAML dari aplikasi tanpa status (Deployment) target.
kubectl get deployment {deployment-name} -o yamlCatatanJika Anda tidak mengetahui
{deployment-name}, jalankan perintah berikut untuk melihat semua aplikasi tanpa status (Deployment). Temukan aplikasi target dalam output, lalu lihat file YAML-nya.kubectl get deployments --all-namespaces -
Jalankan perintah berikut untuk mengedit file YAML dari aplikasi tanpa status (Deployment) target.
kubectl edit deployment {deployment-name} -o yaml -
Tambahkan konten berikut di bawah bagian spec.template.metadata dalam file YAML.
labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Ganti <your-deployment-name> dengan nama aplikasi Anda. aliyun.com/app-language: javaCatatanUntuk informasi selengkapnya tentang keamanan aplikasi, lihat Apa itu keamanan aplikasi?.
Untuk informasi selengkapnya tentang penagihan keamanan aplikasi, lihat Ikhtisar penagihan.
Contoh file YAML berikut membuat dan menghubungkan aplikasi tanpa status (Deployment) baru ke ARMS:
-
Setelah Anda menyimpan konfigurasi, aplikasi akan secara otomatis restart untuk menerapkan perubahan.
Setelah 2 hingga 5 menit, jika aplikasi Anda muncul di halaman di Konsol ARMS dan mulai melaporkan data, koneksi berhasil.