Dokumen ini menunjukkan cara mengonfigurasi logging dan pemantauan untuk sistem di Google Distributed Cloud (khusus software) untuk VMware.
Secara default, Cloud Logging, Cloud Monitoring, dan Google Cloud Managed Service for Prometheus diaktifkan.
Untuk informasi selengkapnya tentang opsi tersebut, lihat Ringkasan logging dan pemantauan.
Resource yang dimonitor
Resource yang dipantau adalah cara Google merepresentasikan resource seperti cluster, untuk node, Pod, dan container. Untuk mempelajari lebih lanjut, lihat dokumen Jenis resource yang dimonitor dokumentasi layanan.
Untuk membuat kueri log dan metrik, Anda harus mengetahui setidaknya label:
project_id
: ID project dari project pemantauan logging cluster. Anda memberikan nilai ini di kolomstackdriver.projectID
pada file konfigurasi cluster Anda.location
: Region Google Cloud tempat Anda ingin menyimpan Log Cloud Logging dan metrik Cloud Monitoring. Bagus Anda bisa memilih region yang dekat dengan pusat data lokal Anda. Anda telah memberikan selama penginstalan distackdriver.clusterLocation
pada file konfigurasi cluster Anda.cluster_name
: Nama cluster yang Anda pilih saat membuat cluster.Anda dapat mengambil nilai
cluster_name
untuk admin atau pengguna cluster dengan memeriksa resource kustom Stackdriver:kubectl get stackdriver stackdriver --namespace kube-system \ --kubeconfig CLUSTER_KUBECONFIG --output yaml | grep 'clusterName:'
di mana
CLUSTER_KUBECONFIG
adalah jalur ke admin file kubeconfig cluster atau cluster pengguna yang memerlukan nama cluster.
Menggunakan Cloud Logging
Anda tidak perlu melakukan tindakan apa pun untuk mengaktifkan Cloud Logging untuk cluster.
Namun, Anda harus menentukan project Google Cloud tempat Anda ingin melihat log. Di beberapa
file konfigurasi cluster, Anda menentukan project Google Cloud di
bagian stackdriver
.
Anda dapat mengakses log menggunakan Logs Explorer di Konsol Google Cloud. Misalnya, untuk mengakses log container:
- Buka Logs Explorer di konsol Google Cloud untuk project Anda.
- Temukan log untuk container dengan:
- Klik pada kotak {i>drop-down <i} katalog log di kiri atas dan memilih Kubernetes Container.
- Memilih nama cluster, namespace, kemudian container dari hierarki.
Melihat log untuk pengontrol di cluster bootstrap
Menemukan nama pod onprem-admin-cluster-controller / clusterapi-controllers
Secara default, nama cluster jenis adalah
gkectl-bootstrap-cluster
."ADMIN_CLUSTER_NAME" resource.type="k8s_container" resource.labels.cluster_name="gkectl-bootstrap-cluster"
Ubah kueri menggunakan nama pod yang Anda temukan, dan dapatkan log
resource.type="k8s_container" resource.labels.cluster_name="gkectl-bootstrap-cluster" resource.labels.pod_name="POD_NAME"
Menggunakan Cloud Monitoring
Anda tidak perlu melakukan tindakan apa pun untuk mengaktifkan Cloud Monitoring untuk cluster.
Namun, Anda harus menentukan project Google Cloud tempat Anda ingin melihat metrik.
Di file konfigurasi cluster, Anda menentukan project Google Cloud di
bagian stackdriver
.
Anda dapat memilih dari lebih dari 1.500 metrik menggunakan Metrics Explorer. Untuk mengakses Metrics Explorer, lakukan tindakan berikut:
Di konsol Google Cloud, pilih Monitoring, atau gunakan tombol berikut:
Pilih Resource > Metrics Explorer.
Anda juga dapat melihat metrik di dasbor di Konsol Google Cloud. Untuk informasi cara membuat dasbor dan melihat metrik, lihat Membuat dasbor.
Melihat data pemantauan tingkat fleet
Untuk gambaran keseluruhan tentang penggunaan sumber daya armada Anda menggunakan Data Cloud Monitoring, termasuk cluster Google Distributed Cloud, dapat Anda gunakan ringkasan Google Kubernetes Engine di Konsol Google Cloud. Lihat Kelola cluster dari konsol Google Cloud untuk mengetahui lebih lanjut.
Batas kuota Cloud Monitoring default
Google Distributed Cloud Monitoring memiliki batas default 6.000 panggilan API per menit untuk setiap proyek. Jika Anda melebihi batas ini, metrik Anda tidak dapat ditampilkan. Jika Anda membutuhkan batas pemantauan yang lebih tinggi, memintanya melalui konsol Google Cloud.
Menggunakan Google Cloud Managed Service for Prometheus
Google Cloud Managed Service for Prometheus adalah bagian dari Cloud Monitoring dan tersedia secara {i>default<i}. Manfaat Google Cloud Managed Service for Prometheus mencakup berikut ini:
Anda dapat terus menggunakan pemantauan berbasis Prometheus yang ada tanpa mengubah pemberitahuan dan dasbor Grafana Anda.
Jika menggunakan GKE dan Google Distributed Cloud, Anda dapat menggunakan PromQL 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 Google Distributed Cloud.
Untuk menonaktifkan Google Cloud Managed Service for Prometheus di cluster:
Buka objek Stackdriver bernama
stackdriver
untuk diedit:kubectl --kubeconfig CLUSTER_KUBECONFIG --namespace kube-system \ edit stackdriver stackdriver
Tambahkan feature gate
enableGMPForSystemMetrics
, dan tetapkan kefalse
:apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: featureGates: enableGMPForSystemMetrics: false
Tutup sesi pengeditan Anda.
Melihat data metrik
Jika Managed Service for Prometheus diaktifkan, metrik untuk hal berikut komponen memiliki format yang berbeda dan bagaimana mereka disimpan dan dikueri Cloud Monitoring:
- kube-apiserver
- kube-scheduler
- kube-controller-manager
- kubelet dan cadvisor
- kube-state-metrics
- node-exporter
Dalam format baru, Anda dapat mengkueri metrik sebelumnya dengan menggunakan PromQL atau Bahasa Kueri Monitoring (MQL).
Contoh PromQL:
histogram_quantile(0.95, sum(rate(apiserver_request_duration_seconds_bucket[5m])) by (le))
Untuk menggunakan MQL, setel resource yang dimonitor ke prometheus_target
, lalu tambahkan
Jenis Prometheus sebagai akhiran pada metrik.
Contoh MQL:
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 Google Cloud Managed Service for Prometheus
Untuk menggunakan Grafana dengan data metrik dari Google Cloud Managed Service for Prometheus, ikuti langkah-langkah dalam artikel Membuat kueri menggunakan Grafana untuk mengautentikasi dan mengonfigurasi sumber data Grafana guna mengkueri data dari Managed Service for Prometheus.
Sekumpulan contoh dasbor Grafana tersedia di sampel-anthos repositori di GitHub. Untuk menginstal dasbor contoh, lakukan tindakan 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 Prometheus
frontend
.Akses UI Grafana dari browser Anda, lalu pilih + Import di bagian menu Dashboards.
Upload file
.json
, atau salin dan tempel konten file, lalu pilih Muat. Setelah konten file berhasil dimuat, pilih Impor. Secara opsional, Anda juga dapat mengubah nama dasbor dan UID sebelum mengimpor.Dasbor yang diimpor akan berhasil dimuat jika Google Distributed Cloud dan sumber datanya dikonfigurasi dengan benar. Misalnya, screenshot berikut menampilkan dasbor yang dikonfigurasi oleh
cluster-capacity.json
.
Referensi lainnya
Untuk informasi selengkapnya tentang Google Cloud Managed Service for Prometheus, lihat artikel berikut:
Menggunakan Prometheus dan Grafana
Mulai versi 1.16, Prometheus dan Grafana tidak tersedia dalam cluster yang dibuat. Sebaiknya gunakan Google Cloud Managed Service for Prometheus sebagai pengganti pemantauan dalam cluster.
Jika Anda mengupgrade 1,15 klaster yang mengaktifkan Prometheus dan Grafana menjadi 1,16, Prometheus dan Grafana akan terus berfungsi sebagaimana adanya, tetapi tidak akan diperbarui atau {i>patch<i} keamanan yang diberikan.
Jika Anda ingin menghapus semua materi Prometheus dan Grafana setelah melakukan upgrade ke 1.16, jalankan perintah berikut:
kubectl --kubeconfig KUBECONFIG delete -n kube-system \ statefulsets,services,configmaps,secrets,serviceaccounts,clusterroles,clusterrolebindings,certificates,deployments \ -l addons.gke.io/legacy-pg=true
Sebagai alternatif penggunaan komponen Prometheus dan Grafana yang terdapat dalam versi Google Distributed Cloud sebelumnya, Anda dapat beralih ke versi komunitas Prometheus dan Grafana.
Masalah umum
Di klaster pengguna, Prometheus dan Grafana secara otomatis dinonaktifkan selama {i>upgrade<i}. Namun, data konfigurasi dan metrik tidak hilang.
Untuk mengatasi masalah ini, setelah upgrade, buka monitoring-sample
untuk
mengedit dan menetapkan enablePrometheus
ke true
.
Mengakses metrik pemantauan dari dasbor Grafana
Grafana menampilkan metrik yang dikumpulkan dari cluster Anda. Untuk melihat metrik ini, Anda perlu mengakses dasbor Grafana:
Mendapatkan nama Grafana Pod yang berjalan di
kube-system
cluster pengguna ruang nama:kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system get pods
dengan [USER_CLUSTER_KUBECONFIG] adalah kubeconfig cluster pengguna .
Pod Grafana memiliki server HTTP yang memantau port localhost TCP 3000. Meneruskan port lokal ke port 3000 di Pod, sehingga Anda dapat melihat resource Grafana {i>dashboard <i}dari sebuah {i>browser <i}web.
Misalnya, nama Pod adalah
grafana-0
. Untuk meneruskan port 50000 ke port 3000 di Pod, masukkan perintah ini:kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system port-forward grafana-0 50000:3000
Dari browser web, buka
http://localhost:50000
.Pada halaman login, masukkan
admin
untuk nama pengguna dan sandi.Jika login berhasil, Anda akan melihat perintah untuk mengubah sandi. Setelah Anda mengubah sandi default, Dasbor Beranda Grafana cluster pengguna akan dimuat.
Untuk mengakses dasbor lainnya, klik menu drop-down Beranda di di pojok kiri atas halaman.
Untuk contoh penggunaan Grafana, lihat Membuat dasbor Grafana.
Mengakses pemberitahuan
Prometheus Alertmanager mengumpulkan pemberitahuan dari server Prometheus. Anda dapat melihat pemberitahuan ini di dasbor Grafana. Untuk melihat pemberitahuan, Anda harus mengakses {i>dashboard<i}:
Container di Pod
alertmanager-0
memantau port TCP 9093. Teruskan a port lokal ke port 9093 di Pod:kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward \ -n kube-system alertmanager-0 50001:9093
Dari browser web, buka
http://localhost:50001
.
Mengubah konfigurasi Alertmanager Prometheus
Anda dapat mengubah konfigurasi default Prometheus Alertmanager dengan mengedit
file monitoring.yaml
cluster pengguna. Anda harus melakukan ini
jika Anda ingin mengarahkan
pemberitahuan ke tujuan tertentu, bukan menyimpannya di dasbor. Anda
dapat mempelajari cara mengonfigurasi Alertmanager di Prometheus'
Dokumentasi Konfigurasi.
Untuk mengubah konfigurasi Alertmanager, lakukan langkah-langkah berikut:
Buat salinan file manifes
monitoring.yaml
cluster pengguna:kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system \ get monitoring monitoring-sample -o yaml > monitoring.yaml
Untuk mengonfigurasi Alertmanager, buat perubahan pada kolom di bagian
spec.alertmanager.yml
. Setelah selesai, simpan manifes yang diubah.Terapkan manifes ke cluster Anda:
kubectl apply --kubeconfig [USER_CLUSTER_KUBECONIFG] -f monitoring.yaml
Membuat dasbor Grafana
Anda telah men-deploy aplikasi yang menampilkan metrik, yang memverifikasi bahwa metrik tersebut terekspos, dan memverifikasi bahwa Prometheus melakukan scraping metrik. Sekarang Anda dapat menambahkan metrik tingkat aplikasi ke dasbor Grafana kustom.
Untuk membuat dasbor Grafana, lakukan langkah-langkah berikut:
- Jika perlu, dapatkan akses ke Grafana.
- Dari Dasbor Beranda, klik menu drop-down Beranda di di pojok kiri atas halaman.
- Dari menu sebelah kanan, klik Dasbor baru.
- Dari bagian Panel baru, klik Graph. Dasbor grafik kosong muncul.
- Klik Judul panel, lalu klik Edit. Panel Graph bawah akan terbuka ke tab Metrics.
- Dari menu drop-down Sumber Data, pilih pengguna. Klik Tambahkan
kueri, dan masukkan
foo
di kolom penelusuran. - Klik tombol Kembali ke dasbor di sudut kanan atas layar. Dasbor Anda ditampilkan.
- Untuk menyimpan dasbor, klik Simpan dasbor di sudut kanan atas layar. Pilih nama untuk dasbor, lalu klik Simpan.
Menonaktifkan Prometheus dan Grafana
Mulai versi 1.16, Prometheus dan Grafana tidak lagi dikontrol oleh
kolom enablePrometheus
di objek monitoring-sample
.
Lihat Menggunakan Prometheus dan Grafana untuk informasi selengkapnya.
Contoh: Menambahkan metrik tingkat aplikasi ke dasbor Grafana
Bagian berikut akan memandu Anda dalam menambahkan metrik untuk aplikasi. Di beberapa bagian ini, Anda akan menyelesaikan tugas-tugas berikut:
- Deploy aplikasi contoh yang menampilkan metrik bernama
foo
. - Verifikasi bahwa Prometheus mengekspos dan menghapus metrik.
- Buat dasbor Grafana kustom.
Men-deploy aplikasi contoh
Aplikasi contoh berjalan dalam satu Pod. Container Pod mengekspos
metrik, foo
, dengan nilai konstanta 40
.
Buat manifes Pod berikut, pro-pod.yaml
:
apiVersion: v1 kind: Pod metadata: name: prometheus-example annotations: prometheus.io/scrape: 'true' prometheus.io/port: '8080' prometheus.io/path: '/metrics' spec: containers: - image: registry.k8s.io/prometheus-dummy-exporter:v0.1.0 name: prometheus-example command: - /bin/sh - -c - ./prometheus_dummy_exporter --metric-name=foo --metric-value=40 --port=8080
Kemudian, terapkan manifes Pod ke cluster pengguna Anda:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f pro-pod.yaml
Verifikasi bahwa metrik diekspos dan disalin
Container di pod
prometheus-example
memantau di port TCP 8080. Meneruskan port lokal ke port 8080 di Pod:kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward prometheus-example 50002:8080
Untuk memastikan bahwa aplikasi mengekspos metrik, jalankan perintah berikut:
curl localhost:50002/metrics | grep foo
Perintah tersebut akan menampilkan output berikut:
# HELP foo Custom metric # TYPE foo gauge foo 40
Container di Pod
prometheus-0
memantau port TCP 9090. Meneruskan port lokal ke porta 9090 di Pod:kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward prometheus-0 50003:9090
Untuk memverifikasi bahwa Prometheus melakukan scraping metrik, buka http://localhost:50003/targets, yang akan membawa Anda ke
prometheus-0
Pod di bawah grup targetprometheus-io-pods
.Untuk melihat metrik di Prometheus, arahkan ke http://localhost:50003/graph. Dari kolom search, masukkan
foo
, lalu klik Execute. Halaman ini harus menampilkan metrik.
Mengonfigurasi resource kustom Stackdriver
Saat membuat cluster, Google Distributed Cloud otomatis membuat resource kustom Stackdriver. Anda dapat mengedit spesifikasi di resource kustom untuk mengganti nilai default CPU dan memori permintaan dan batas komponen Stackdriver, dan Anda dapat mengganti ukuran penyimpanan dan kelas penyimpanan default secara terpisah.
Ganti nilai default untuk permintaan serta batas CPU dan memori
Untuk mengganti setelan default ini, lakukan hal berikut:
Buka resource kustom Stackdriver di editor command line:
kubectl --kubeconfig=KUBECONFIG -n kube-system edit stackdriver stackdriver
dengan KUBECONFIG merupakan jalur ke file kubeconfig Anda untuk cluster tersebut. Cluster pengguna dapat berupa cluster admin atau cluster pengguna.
Pada resource khusus Stackdriver, tambahkan kolom
resourceAttrOverride
di bawah bagianspec
:resourceAttrOverride: POD_NAME_WITHOUT_RANDOM_SUFFIX/CONTAINER_NAME: LIMITS_OR_REQUESTS: RESOURCE: RESOURCE_QUANTITY
Perlu diperhatikan bahwa kolom
resourceAttrOverride
mengganti semua kolom default yang ada batas dan permintaan 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 terlihat seperti berikut
apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: 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
Simpan perubahan dan tutup editor command line Anda.
Memeriksa kondisi Pod:
kubectl --kubeconfig=KUBECONFIG -n kube-system get pods | grep gke-metrics-agent
Misalnya, Pod yang responsif akan terlihat seperti berikut:
gke-metrics-agent-4th8r 1/1 Running 0 5d19h
Memeriksa spesifikasi Pod komponen untuk memastikan resource disetel dengan benar.
kubectl --kubeconfig=KUBECONFIG -n kube-system describe pod POD_NAME
dengan
POD_NAME
adalah nama Pod yang baru saja Anda ubah. Misalnya,stackdriver-prometheus-k8s-0
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 ...
Mengganti default ukuran penyimpanan
Untuk mengganti setelan default ini, lakukan hal berikut:
Buka resource kustom Stackdriver di editor command line:
kubectl --kubeconfig=KUBECONFIG -n kube-system edit stackdriver stackdriver
Tambahkan kolom
storageSizeOverride
di bawah bagianspec
. Anda dapat menggunakan komponenstackdriver-prometheus-k8s
ataustackdriver-prometheus-app
. Bagian ini menggunakan format ini:storageSizeOverride: STATEFULSET_NAME: SIZE
Contoh ini menggunakan
stackdriver-prometheus-k8s
statefulset dan ukuran120Gi
.apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: projectID: my-project clusterName: my-cluster clusterLocation: us-west-1a storageSizeOverride: stackdriver-prometheus-k8s: 120Gi
Simpan, dan tutup editor baris perintah Anda.
Memeriksa kondisi Pod:
Misalnya, Pod yang responsif akan terlihat seperti berikut:kubectl --kubeconfig=KUBECONFIG -n kube-system get pods | grep stackdriver
stackdriver-prometheus-k8s-0 2/2 Running 0 5d19h
Memeriksa spesifikasi Pod komponen untuk memastikan ukuran penyimpanan diganti dengan benar.
kubectl --kubeconfig=KUBECONFIG -n kube-system describe statefulset STATEFULSET_NAME
Responsnya akan terlihat seperti berikut:
Volume Claims: Name: my-statefulset-persistent-volume-claim StorageClass: my-storage-class Labels: Annotations: Capacity: 120Gi Access Modes: [ReadWriteOnce]
Mengganti default kelas penyimpanan
Prasyarat
Anda harus terlebih dahulu membuat StorageClass yang ingin digunakan.
Guna mengganti kelas penyimpanan default untuk volume persisten yang diklaim oleh komponen logging dan pemantauan:
Buka resource kustom Stackdriver di editor command line:
kubectl --kubeconfig=KUBECONFIG -n kube-system edit stackdriver stackdriver
dengan KUBECONFIG merupakan jalur ke file kubeconfig Anda untuk cluster tersebut. Cluster pengguna dapat berupa cluster admin atau cluster pengguna.
Tambahkan kolom
storageClassName
di bawah bagianspec
:storageClassName: STORAGECLASS_NAME
Perhatikan bahwa kolom
storageClassName
akan menggantikan kelas penyimpanan default yang ada, dan berlaku untuk semua komponen logging dan pemantauan yang memiliki volume persisten yang diklaim. Contoh file akan terlihat seperti berikut:apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: projectID: my-project clusterName: my-cluster clusterLocation: us-west-1a proxyConfigSecretName: my-secret-name enableVPC:
optimizedMetrics: true storageClassName: my-storage-class Simpan perubahan.
Memeriksa kondisi Pod:
kubectl --kubeconfig=KUBECONFIG -n kube-system get pods | grep stackdriver
Misalnya, Pod yang responsif akan terlihat seperti berikut:
stackdriver-prometheus-k8s-0 1/1 Running 0 5d19h
Memeriksa spesifikasi Pod komponen untuk memastikan kelas penyimpanan ditetapkan dengan benar.
kubectl --kubeconfig=KUBECONFIG -n kube-system describe statefulset STATEFULSET_NAME
Misalnya, dengan menggunakan
stackdriver-prometheus-k8s
kumpulan stateful, responsnya akan terlihat seperti berikut:Volume Claims: Name: stackdriver-prometheus-data StorageClass: my-storage-class Labels: Annotations: Capacity: 120Gi Access Modes: [ReadWriteOnce]
Nonaktifkan metrik yang dioptimalkan
Secara default, agen metrik yang berjalan di cluster mengumpulkan dan melaporkan mengoptimalkan serangkaian metrik container, kubelet, dan kube-state-state ke Stackdriver. Jika Anda memerlukan metrik tambahan, sebaiknya cari pengganti dari daftar metrik GKE Enterprise.
Berikut beberapa contoh pengganti yang mungkin 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 status-metrik kube-state yang dioptimalkan (tidak direkomendasikan), lakukan tindakan berikut:
Buka resource kustom Stackdriver di editor command line:
kubectl --kubeconfig=KUBECONFIG -n kube-system edit stackdriver stackdriver
dengan KUBECONFIG merupakan jalur ke file kubeconfig Anda untuk cluster tersebut. Cluster pengguna dapat berupa cluster admin atau cluster pengguna.
Tetapkan kolom
optimizedMetrics
kefalse
:apiVersion: addons.gke.io/v1alpha1 kind: Stackdriver metadata: name: stackdriver namespace: kube-system spec: projectID: my-project clusterName: my-cluster clusterLocation: us-west-1a proxyConfigSecretName: my-secret-name enableVPC:
optimizedMetrics: false storageClassName: my-storage-class Simpan perubahan, dan tutup editor command line Anda.
Masalah umum: Kondisi error Cloud Monitoring
(ID Masalah 159761921)
Dalam kondisi tertentu, pod Cloud Monitoring default,
yang di-deploy secara default di setiap cluster baru, dapat menjadi tidak responsif.
Misalnya, saat cluster diupgrade, data penyimpanan dapat menjadi
rusak saat pod di statefulset/prometheus-stackdriver-k8s
dimulai ulang.
Secara khusus, pod pemantauan stackdriver-prometheus-k8s-0
dapat
terperangkap di loop saat data yang rusak mencegah prometheus-stackdriver-sidecar
menulis ke penyimpanan cluster PersistentVolume
.
Anda dapat mendiagnosis dan memulihkan error secara manual dengan mengikuti langkah-langkah di bawah.
Mendiagnosis kegagalan Cloud Monitoring
Saat pod pemantauan gagal, log akan melaporkan hal berikut:
{"log":"level=warn ts=2020-04-08T22:15:44.557Z caller=queue_manager.go:534 component=queue_manager msg=\"Unrecoverable error sending samples to remote storage\" err=\"rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: One or more points were written more frequently than the maximum sampling period configured for the metric.: timeSeries[0-114]; Unknown metric: kubernetes.io/anthos/scheduler_pending_pods: timeSeries[196-198]\"\n","stream":"stderr","time":"2020-04-08T22:15:44.558246866Z"}
{"log":"level=info ts=2020-04-08T22:15:44.656Z caller=queue_manager.go:229 component=queue_manager msg=\"Remote storage stopped.\"\n","stream":"stderr","time":"2020-04-08T22:15:44.656798666Z"}
{"log":"level=error ts=2020-04-08T22:15:44.663Z caller=main.go:603 err=\"corruption after 29032448 bytes: unexpected non-zero byte in padded page\"\n","stream":"stderr","time":"2020-04-08T22:15:44.663707748Z"}
{"log":"level=info ts=2020-04-08T22:15:44.663Z caller=main.go:605 msg=\"See you next time!\"\n","stream":"stderr","time":"2020-04-08T22:15:44.664000941Z"}
Memulihkan dari error Cloud Monitoring
Untuk memulihkan Cloud Monitoring secara manual:
Hentikan pemantauan cluster. Turunkan skala operator
stackdriver
untuk mencegah pemantauan rekonsiliasi:kubectl --kubeconfig /ADMIN_CLUSTER_KUBCONFIG --namespace kube-system scale deployment stackdriver-operator --replicas 0
Hapus workload pipeline pemantauan:
kubectl --kubeconfig /ADMIN_CLUSTER_KUBCONFIG --namespace kube-system delete statefulset stackdriver-prometheus-k8s
Menghapus pipeline pemantauan PersistentVolumeKlaim (PVC):
kubectl --kubeconfig /ADMIN_CLUSTER_KUBCONFIG --namespace kube-system delete pvc -l app=stackdriver-prometheus-k8s
Mulai ulang pemantauan cluster. Tingkatkan skala operator stackdriver untuk menginstal ulang pipeline pemantauan baru dan melanjutkan rekonsiliasi:
kubectl --kubeconfig /ADMIN_CLUSTER_KUBCONFIG --namespace kube-system scale deployment stackdriver-operator --replicas=1