Latar Belakang
Dalam penerapan standar, komponen ack-onepilot menentukan jalur mount untuk agen Java dengan menyuntikkan variabel lingkungan JAVA_TOOL_OPTIONS. Namun, Anda mungkin perlu menyesuaikan jalur mount agen tersebut untuk skenario tertentu, seperti berikut:
Pengelolaan konfigurasi terpusat
Anda dapat mengelola jalur agen secara terpusat menggunakan ConfigMap Kubernetes untuk memastikan konsistensi konfigurasi di berbagai lingkungan.
Persyaratan penyimpanan persisten
Kebijakan keamanan perusahaan atau persyaratan O&M mungkin mengharuskan file probe disimpan dalam volume persisten (PVC) khusus.
Ketergantungan versi
Menyesuaikan jalur mount agen Java memerlukan versi komponen berikut:
ack-onepilot: versi 4.1.0 atau lebih baru.
ARMS Java agent: versi 4.2.2 atau lebih baru. Anda juga dapat mengontrol versi ARMS Java agent sesuai kebutuhan.
Solusi
Komponen ack-onepilot digunakan bersama oleh Microservice Engine (MSE) dan Application Real-Time Monitoring Service (ARMS). Oleh karena itu, prosedur ini juga berlaku untuk aplikasi administrasi layanan MSE.
Tambahkan anotasi
disableJavaToolOptionsInjectionke beban kerja Kubernetes, seperti Deployment, yang memerlukan agen Java dengan mount khusus.Setelah menambahkan anotasi ini, komponen ack-onepilot tidak akan menggunakan variabel lingkungan JAVA_TOOL_OPTIONS untuk secara otomatis menentukan jalur mount agen atau parameter Java Virtual Machine (JVM) lainnya.
Jalankan perintah berikut untuk melihat file YAML dari deployment target.
kubectl get deployment YOUR_DEPLOYMENT_NAME -o yamlCatatanJika Anda tidak yakin dengan nama deployment-nya, Anda dapat menjalankan perintah berikut untuk menampilkan semua deployment. Temukan deployment target di hasilnya, lalu lihat file YAML-nya.
kubectl get deployments --all-namespacesAnda dapat mengedit file YAML untuk aplikasi tanpa status (Deployment) target.
kubectl edit deployment YOUR_DEPLOYMENT_NAME -o yamlDalam file YAML, tambahkan konten berikut di bawah spec.template.metadata.
labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<span class="var-span" contenteditable="true" data-var="YOUR_DEPLOYMENT_NAME">YOUR_DEPLOYMENT_NAME"</span> # Ganti YOUR_DEPLOYMENT_NAME dengan nama aplikasi Anda. disableJavaToolOptionsInjection: "true" # Untuk menyesuaikan jalur mount agen Java, atur nilai ini menjadi true.
Tambahkan jalur mount untuk ARMS Java agent ke skrip startup aplikasi atau perintah startup Java Anda.
Jalur mount default adalah
/home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar. Ganti jalur ini dengan jalur kustom Anda.java -javaagent:/home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar ... ... -jar xxx.jarInformasi lainnya, seperti wilayah pelaporan dan kunci lisensi, disuntikkan oleh ack-onepilot melalui variabel lingkungan.