GKE on Bare Metal mencakup beberapa opsi untuk logging dan pemantauan cluster, termasuk layanan terkelola berbasis cloud, alat open source, dan kompatibilitas yang tervalidasi dengan solusi komersial pihak ketiga. Halaman ini menjelaskan opsi ini dan memberikan beberapa panduan dasar tentang cara memilih solusi yang tepat untuk lingkungan Anda.
Opsi untuk GKE di Bare Metal
Anda memiliki beberapa opsi logging dan pemantauan untuk GKE di Bare Metal:
- Cloud Logging dan Cloud Monitoring, diaktifkan secara default pada komponen sistem Bare Metal.
- Prometheus dan Grafana tersedia dari Cloud Marketplace.
- Konfigurasi yang divalidasi dengan solusi pihak ketiga.
Cloud Logging dan Cloud Monitoring
Kemampuan observasi Google Cloud adalah solusi kemampuan observasi bawaan untuk Google Cloud. Layanan ini menawarkan solusi logging yang terkelola sepenuhnya, pengumpulan metrik, pemantauan, dasbor, dan pemberitahuan. Cloud Monitoring memantau GKE di cluster Bare Metal dengan cara yang sama seperti cluster GKE berbasis cloud.
Agen dapat dikonfigurasi untuk mengubah cakupan logging dan pemantauan, serta tingkat metrik yang dikumpulkan:
- Cakupan logging dan pemantauan dapat ditetapkan ke komponen sistem saja (default) atau untuk komponen sistem dan aplikasi.
- Tingkat metrik yang dikumpulkan dapat dikonfigurasi untuk kumpulan metrik yang dioptimalkan (default) atau untuk metrik lengkap.
Lihat artikel Mengonfigurasi agen Stackdriver untuk GKE di Bare Metal dalam dokumen ini untuk mengetahui informasi selengkapnya.
Logging dan Monitoring menyediakan satu solusi yang mudah dikonfigurasi dan canggih berdasarkan kemampuan observasi berbasis cloud. Kami sangat merekomendasikan Logging dan Monitoring saat menjalankan beban kerja hanya di GKE di Bare Metal, atau workload di GKE dan GKE di Bare Metal. Untuk aplikasi dengan komponen yang berjalan di GKE pada Bare Metal dan infrastruktur lokal standar, Anda dapat mempertimbangkan solusi lain untuk melihat aplikasi tersebut secara menyeluruh.
Untuk mengetahui detail tentang arsitektur, konfigurasi, dan data yang direplikasi ke project Google Cloud secara default, lihat Cara kerja Logging dan Pemantauan untuk GKE di Bare Metal.
Untuk mengetahui informasi selengkapnya tentang Logging, lihat dokumentasi Cloud Logging.
Untuk mengetahui informasi selengkapnya tentang Monitoring, baca dokumentasi Cloud Monitoring.
Untuk mempelajari cara melihat dan menggunakan metrik pemanfaatan resource Cloud Monitoring dari GKE pada Bare Metal pada level fleet, lihat Menggunakan ringkasan edisi Google Kubernetes Engine (GKE) Enterprise.
Prometheus dan Grafana
Prometheus dan Grafana adalah dua produk pemantauan open source populer yang tersedia di Cloud Marketplace:
Prometheus mengumpulkan metrik aplikasi dan sistem.
Alertmanager menangani pengiriman pemberitahuan dengan beberapa mekanisme pemberitahuan yang berbeda.
Grafana adalah alat dasbor.
Prometheus dan Grafana dapat diaktifkan di setiap cluster admin dan cluster pengguna. Prometheus dan Grafana direkomendasikan untuk tim aplikasi yang memiliki pengalaman sebelumnya menggunakan produk tersebut. Produk ini juga direkomendasikan untuk tim operasional yang lebih memilih untuk mempertahankan metrik aplikasi dalam cluster dan untuk memecahkan masalah saat konektivitas jaringan terputus.
Solusi pihak ketiga
Google telah bekerja sama dengan beberapa penyedia solusi logging dan pemantauan pihak ketiga agar produk mereka berfungsi baik dengan GKE di Bare Metal. Ini termasuk Datadog, Elastic, dan Splunk. Pihak ketiga tambahan yang divalidasi akan ditambahkan di masa mendatang.
Panduan solusi berikut tersedia untuk menggunakan solusi pihak ketiga dengan GKE di Bare Metal:
- Memantau GKE di Bare Metal dengan Elastic Stack
- Mengumpulkan log di GKE di Bare Metal dengan Splunk Connect
Cara kerja Logging dan Monitoring untuk GKE di Bare Metal
Cloud Logging dan Cloud Monitoring diinstal dan diaktifkan di setiap cluster saat Anda membuat admin atau cluster pengguna baru.
Agen Stackdriver mencakup beberapa komponen di setiap cluster:
Operator Stackdriver (
stackdriver-operator-*
). Mengelola siklus proses untuk semua agen Stackdriver lainnya yang di-deploy ke cluster.Resource Kustom Stackdriver. Resource yang otomatis dibuat sebagai bagian dari proses penginstalan GKE pada Bare Metal.
Agen Metrics GKE (
gke-metrics-agent-*
). DaemonSet berbasis OpenTelemetry Collector yang menyalin metrik dari setiap node ke Cloud Monitoring. DaemonSetnode-exporter
dan deploymentkube-state-metrics
juga disertakan untuk memberikan lebih banyak metrik tentang cluster.Stackdriver Log Forwarder (
stackdriver-log-forwarder-*
). Fluent Bit DaemonSet yang meneruskan log dari setiap mesin ke Cloud Logging. Forwarder log akan melakukan buffering entri log pada node secara lokal dan mengirimnya ulang hingga 4 jam. Jika buffer penuh atau jika Penerusan Log tidak dapat menjangkau Cloud Logging API selama lebih dari 4 jam, log akan dihapus.Anthos Metadata Agent (
stackdriver-metadata-agent-
). Deployment yang mengirimkan metadata untuk resource Kubernetes seperti pod, deployment, atau node ke Config Monitoring for Ops API; data ini digunakan untuk memperkaya kueri metrik dengan memungkinkan Anda membuat kueri berdasarkan nama deployment, nama node, atau bahkan nama layanan Kubernetes.
Anda dapat melihat agen yang diinstal oleh Stackdriver dengan menjalankan perintah berikut:
kubectl -n kube-system get pods -l "managed-by=stackdriver"
Output perintah ini akan mirip dengan berikut ini:
kube-system gke-metrics-agent-4th8r 1/1 Running 1 (40h ago) 40h
kube-system gke-metrics-agent-8lt4s 1/1 Running 1 (40h ago) 40h
kube-system gke-metrics-agent-dhxld 1/1 Running 1 (40h ago) 40h
kube-system gke-metrics-agent-lbkl2 1/1 Running 1 (40h ago) 40h
kube-system gke-metrics-agent-pblfk 1/1 Running 1 (40h ago) 40h
kube-system gke-metrics-agent-qfwft 1/1 Running 1 (40h ago) 40h
kube-system kube-state-metrics-9948b86dd-6chhh 1/1 Running 1 (40h ago) 40h
kube-system node-exporter-5s4pg 1/1 Running 1 (40h ago) 40h
kube-system node-exporter-d9gwv 1/1 Running 2 (40h ago) 40h
kube-system node-exporter-fhbql 1/1 Running 1 (40h ago) 40h
kube-system node-exporter-gzf8t 1/1 Running 1 (40h ago) 40h
kube-system node-exporter-tsrpp 1/1 Running 1 (40h ago) 40h
kube-system node-exporter-xzww7 1/1 Running 1 (40h ago) 40h
kube-system stackdriver-log-forwarder-8lwxh 1/1 Running 1 (40h ago) 40h
kube-system stackdriver-log-forwarder-f7cgf 1/1 Running 2 (40h ago) 40h
kube-system stackdriver-log-forwarder-fl5gf 1/1 Running 1 (40h ago) 40h
kube-system stackdriver-log-forwarder-q5lq8 1/1 Running 2 (40h ago) 40h
kube-system stackdriver-log-forwarder-www4b 1/1 Running 1 (40h ago) 40h
kube-system stackdriver-log-forwarder-xqgjc 1/1 Running 1 (40h ago) 40h
kube-system stackdriver-metadata-agent-cluster-level-5bb5b6d6bc-z9rx7 1/1 Running 1 (40h ago) 40h
Metrik Cloud Monitoring
Untuk daftar metrik yang dikumpulkan oleh Cloud Monitoring, baca artikel Melihat metrik GKE pada Bare Metal.
Mengonfigurasi agen Stackdriver untuk GKE di Bare Metal
Agen Stackdriver yang diinstal dengan GKE di Bare Metal mengumpulkan data tentang komponen sistem untuk tujuan pemeliharaan dan pemecahan masalah pada cluster Anda. Bagian berikut ini menjelaskan konfigurasi Stackdriver dan mode operasi.
Hanya Komponen Sistem (Mode Default)
Setelah penginstalan, agen Stackdriver dikonfigurasi secara default untuk mengumpulkan log dan metrik, termasuk detail performa (misalnya, pemakaian CPU dan memori), serta metadata serupa, untuk komponen sistem yang disediakan Google. Ini mencakup semua beban kerja di cluster admin, dan untuk cluster pengguna, workload di namespace sistem kube, gke-system, gke-connect, istio-system, dan config-management-.
Komponen Sistem dan Aplikasi
Untuk mengaktifkan logging dan pemantauan aplikasi di atas mode default, ikuti langkah-langkah di Mengaktifkan logging dan pemantauan aplikasi.
Metrik yang dioptimalkan (Metrik default)
Secara default, deployment kube-state-metrics
yang berjalan di cluster mengumpulkan dan melaporkan
serangkaian metrik kube yang dioptimalkan ke Google Cloud Observability (sebelumnya bernama Stackdriver).
Perlu lebih sedikit resource untuk mengumpulkan rangkaian metrik yang dioptimalkan ini, sehingga meningkatkan performa dan skalabilitas secara keseluruhan.
Untuk menonaktifkan metrik yang dioptimalkan (tidak direkomendasikan), ganti setelan default di resource kustom Stackdriver Anda.
Menggunakan Managed Service for Prometheus untuk komponen sistem yang dipilih
Google Cloud Managed Service for Prometheus adalah bagian dari Cloud Monitoring dan tersedia sebagai opsi untuk komponen sistem. Manfaat Google Cloud Managed Service for Prometheus meliputi hal berikut:
Anda dapat terus menggunakan pemantauan berbasis Prometheus yang sudah ada tanpa mengubah pemberitahuan dan dasbor Grafana.
Jika menggunakan GKE dan GKE pada Bare Metal, Anda dapat menggunakan Prometheus Query Language (PromQL) yang sama untuk metrik di semua cluster Anda. Anda juga dapat menggunakan tab PromQL di Metrics Explorer di Konsol Google Cloud.
Mengaktifkan dan menonaktifkan Google Cloud Managed Service for Prometheus
Google Cloud Managed Service for Prometheus diaktifkan secara default di GKE pada Bare Metal.
Untuk menonaktifkan Google Cloud Managed Service for Prometheus:
Buka objek Stackdriver bernama
stackdriver
untuk mengedit:kubectl --kubeconfig CLUSTER_KUBECONFIG --namespace kube-system \ edit stackdriver stackdriver
Tambahkan gate fitur
enableGMPForSystemMetrics
, lalu tetapkan kefalse
:apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: featureGates: enableGMPForSystemMetrics: false
Tutup sesi pengeditan Anda.
Lihat data metrik
Jika enableGMPForSystemMetrics
ditetapkan ke true
, metrik untuk komponen berikut memiliki format yang berbeda terkait cara komponen berikut disimpan dan dikueri di Cloud Monitoring:
- kube-apiserver
- kube-scheduler
- kube-controller-manager
- kubelet dan cadvisor
- kube-state-metrics
- pengekspor node
Dalam format baru ini, Anda dapat membuat kueri metrik sebelumnya menggunakan PromQL atau Monitoring Query Language (MQL):
PromQL
Contoh kueri PromQL:
histogram_quantile(0.95, sum(rate(apiserver_request_duration_seconds_bucket[5m])) by (le))
MQL
Untuk menggunakan MQL, tetapkan resource yang dipantau ke prometheus_target
, gunakan nama metrik dengan awalan kubernetes.io/anthos
, lalu tambahkan jenis Prometheus sebagai akhiran pada nama metrik.
fetch prometheus_target
| metric 'kubernetes.io/anthos/apiserver_request_duration_seconds/histogram'
| align delta(5m)
| every 5m
| group_by [], [value_histogram_percentile: percentile(value.histogram, 95)]
Mengonfigurasi dasbor Grafana dengan Managed Service for Prometheus
Untuk menggunakan Grafana dengan data metrik dari Managed Service for Prometheus, ikuti langkah-langkah dalam Membuat kueri menggunakan Grafana untuk mengautentikasi dan mengonfigurasi sumber data Grafana guna mengkueri data dari Managed Service for Prometheus.
Serangkaian dasbor contoh Grafana disediakan di repositori anthos-samples di GitHub. Untuk menginstal contoh dasbor, lakukan hal berikut:
Download contoh file JSON:
git clone https://github.com/GoogleCloudPlatform/anthos-samples.git cd anthos-samples/gmp-grafana-dashboards
Jika sumber data Grafana Anda dibuat dengan nama yang berbeda dengan
Managed Service for Prometheus
, ubah kolomdatasource
di semua file JSON:sed -i "s/Managed Service for Prometheus/[DATASOURCE_NAME]/g" ./*.json
Ganti [DATASOURCE_NAME] dengan nama sumber data di Grafana Anda yang diarahkan ke layanan
frontend
Prometheus.Akses UI Grafana dari browser, lalu pilih + Import di bagian menu Dashboards.
Upload file JSON, atau salin dan tempel konten file, lalu pilih Load. Setelah konten file berhasil dimuat, pilih Impor. Anda juga dapat mengubah nama dasbor dan UID sebelum mengimpor.
Dasbor yang diimpor akan berhasil dimuat jika GKE Anda di Bare Metal dan sumber data dikonfigurasi dengan benar. Misalnya, screenshot berikut menampilkan dasbor yang dikonfigurasi oleh
cluster-capacity.json
.
Referensi lainnya
Untuk mengetahui informasi selengkapnya tentang Google Cloud Managed Service for Prometheus, lihat referensi berikut:
Mengonfigurasi resource komponen Stackdriver
Saat Anda membuat cluster, GKE di Bare Metal secara otomatis membuat resource kustom Stackdriver. Anda dapat mengedit spesifikasi di resource kustom guna mengganti nilai default untuk permintaan serta batas CPU dan memori untuk komponen Stackdriver, dan Anda juga dapat mengganti setelan metrik default yang dioptimalkan secara terpisah.
Mengganti batas dan permintaan memori serta CPU default untuk komponen Stackdriver
Cluster dengan kepadatan pod tinggi memperkenalkan overhead logging dan pemantauan yang lebih tinggi. Dalam kasus yang ekstrem, komponen Stackdriver dapat melaporkan hampir batas pemakaian CPU dan memori atau bahkan mungkin harus dimulai ulang secara konstan karena batas resource. Dalam kasus ini, guna mengganti nilai default untuk permintaan CPU dan memori serta batas untuk komponen Stackdriver, gunakan langkah-langkah berikut:
Jalankan perintah berikut untuk membuka resource kustom Stackdriver di editor command line:
kubectl -n kube-system edit stackdriver stackdriver
Di resource kustom Stackdriver, tambahkan bagian
resourceAttrOverride
di bawah kolomspec
:resourceAttrOverride: DAEMONSET_OR_DEPLOYMENT_NAME/CONTAINER_NAME: LIMITS_OR_REQUESTS: RESOURCE: RESOURCE_QUANTITY
Perhatikan bahwa bagian
resourceAttrOverride
mengganti semua batas dan permintaan default yang ada untuk komponen yang Anda tentukan. Komponen berikut didukung olehresourceAttrOverride
:gke-metrics-agent/gke-metrics-agent
stackdriver-log-forwarder/stackdriver-log-forwarder
stackdriver-metadata-agent-cluster-level/metadata-agent
node-exporter/node-exporter
kube-state-metrics/kube-state-metrics
Contoh file akan terlihat seperti berikut:
apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: anthosDistribution: baremetal projectID: my-project clusterName: my-cluster clusterLocation: us-west-1a resourceAttrOverride: gke-metrics-agent/gke-metrics-agent: requests: cpu: 110m memory: 240Mi limits: cpu: 200m memory: 4.5Gi
Untuk menyimpan perubahan pada resource kustom Stackdriver, simpan dan keluar dari editor command line Anda.
Memeriksa kondisi Pod:
kubectl -n kube-system get pods -l "managed-by=stackdriver"
Respons untuk Pod yang sehat akan terlihat seperti berikut:
gke-metrics-agent-4th8r 1/1 Running 1 40h
Periksa spesifikasi Pod komponen untuk memastikan resource ditetapkan dengan benar.
kubectl -n kube-system describe pod POD_NAME
Ganti
POD_NAME
dengan nama Pod yang baru saja Anda ubah. Contoh,gke-metrics-agent-4th8r
.Responsnya akan terlihat seperti berikut:
Name: gke-metrics-agent-4th8r Namespace: kube-system ... Containers: gke-metrics-agent: Limits: cpu: 200m memory: 4.5Gi Requests: cpu: 110m memory: 240Mi ...
Nonaktifkan metrik yang dioptimalkan
Secara default, deployment kube-state-metrics
yang berjalan di cluster mengumpulkan dan melaporkan serangkaian metrik kube yang dioptimalkan ke Stackdriver. Jika Anda memerlukan metrik tambahan,
sebaiknya cari metrik pengganti dari daftar GKE di metrik
Bare Metal.
Berikut adalah beberapa contoh perangkat pengganti yang dapat Anda gunakan:
Metrik yang dinonaktifkan | Penggantian |
---|---|
kube_pod_start_time |
container/uptime |
kube_pod_container_resource_requests |
container/cpu/request_cores container/memory/request_bytes |
kube_pod_container_resource_limits |
container/cpu/limit_cores container/memory/limit_bytes |
Untuk menonaktifkan setelan default metrik yang dioptimalkan (tidak direkomendasikan), lakukan tindakan berikut:
Buka resource kustom Stackdriver di editor command line:
kubectl -n kube-system edit stackdriver stackdriver
Tetapkan kolom
optimizedMetrics
kefalse
:apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: anthosDistribution: baremetal projectID: my-project clusterName: my-cluster clusterLocation: us-west-1a optimizedMetrics: false
Simpan perubahan, dan keluar dari editor command line Anda.
Server Metrik
Server Metrik adalah sumber metrik resource penampung untuk berbagai pipeline penskalaan otomatis. Server Metrics mengambil metrik dari kubelets dan menampilkannya melalui Kubernetes Metrics API. HPA dan VPA kemudian menggunakan metrik ini untuk menentukan kapan harus memicu penskalaan otomatis. Server metrik diskalakan menggunakan pengubah add-on.
Pada kasus ekstrem ketika kepadatan pod yang tinggi menghasilkan terlalu banyak overhead logging dan pemantauan, Server Metrics mungkin akan dihentikan dan dimulai ulang karena keterbatasan resource. Dalam hal ini, Anda dapat mengalokasikan lebih banyak resource ke server metrik dengan mengedit configmap metrics-server-config
di namespace server gke-managed-metrics-server, serta mengubah nilai untuk cpuPerNode
dan memoryPerNode
.
kubectl edit cm metrics-server-config -n gke-managed-metrics-server
Contoh konten ConfigMap adalah:
apiVersion: v1
data:
NannyConfiguration: |-
apiVersion: nannyconfig/v1alpha1
kind: NannyConfiguration
cpuPerNode: 3m
memoryPerNode: 20Mi
kind: ConfigMap
Setelah memperbarui ConfigMap, buat ulang pod server metrik dengan perintah berikut:
kubectl delete pod -l k8s-app=metrics-server -n gke-managed-metrics-server
Persyaratan konfigurasi untuk Logging dan Monitoring
Ada beberapa persyaratan konfigurasi untuk mengaktifkan Cloud Logging dan Cloud Monitoring dengan GKE di Bare Metal. Langkah-langkah ini tercakup dalam Mengonfigurasi akun layanan untuk digunakan dengan Logging dan Monitoring di halaman Mengaktifkan layanan Google, dan dalam daftar berikut:
- Ruang Kerja Cloud Monitoring harus dibuat dalam project Google Cloud. Hal ini dilakukan dengan mengklik Monitoring di Google Cloud Console dan mengikuti alur kerja.
Anda harus mengaktifkan Stackdriver API berikut:
Anda perlu menetapkan peran IAM berikut ke akun layanan yang digunakan oleh agen Stackdriver:
logging.logWriter
monitoring.metricWriter
stackdriver.resourceMetadata.writer
monitoring.dashboardEditor
opsconfigmonitoring.resourceMetadata.writer
Harga
Log dan metrik sistem edisi Google Kubernetes Engine (GKE) Enterprise tidak dikenai biaya.
Dalam GKE pada cluster Bare Metal, log dan metrik sistem edisi Google Kubernetes Engine (GKE) Enterprise mencakup hal berikut:
- Log dan metrik dari semua komponen dalam cluster admin
- Log dan metrik dari komponen dalam namespace ini di cluster pengguna:
kube-system
,gke-system
,gke-connect
,knative-serving
,istio-system
,monitoring-system
,config-management-system
,gatekeeper-system
,cnrm-system
Untuk mengetahui informasi selengkapnya, lihat Harga untuk Kemampuan Observasi Google Cloud.
Guna mempelajari kredit untuk metrik Cloud Logging, hubungi bagian penjualan untuk mengetahui harga.