# [根據此文件進行作業](https://cloud.google.com/stackdriver/docs/managed-prometheus/exporters/kube_state_metrics?hl=zh-cn) ### 1. 先到GKE 叢集內將 **Managed Service for Prometheus**功能啟用  ### 2. 連線到叢集內進行建立NS ``` kubectl create ns sample ``` --- ### 3.安装 Kube 状态指标 #### Kube 狀態指標範例的本地檔案明稱為kube-state-metrics.yaml ``` kubectl apply -f kube-state-metrics.yaml ``` ##### 備注:官方的安装 Kube 狀態指標可以從[github](https://github.com/GoogleCloudPlatform/prometheus-engine/blob/main/examples/kube-state-metrics/kube-state-metrics.yaml)查看最新的yaml --- ### 4.安裝定義規則和提醒 #### 裝定義規則和提醒範例的本地檔案明稱為rules.yaml ``` kubectl apply -f rules.yaml ``` --- ### 5.新增[cAdvisor指標](https://cloud.google.com/stackdriver/docs/managed-prometheus/exporters/kubelet-cadvisor?hl=zh-cn) #### 到operatorconfig進行修改 ``` kubectl -n gmp-public edit operatorconfig config ``` #### 新增collection部分(最後三行) ```= config apiVersion: monitoring.googleapis.com/v1 kind: OperatorConfig metadata: namespace: gmp-public name: config collection: kubeletScraping: interval: 30s ``` --- ### 6. 配置Prometheus 前端界面 ##### (以下內容的(PROJECT_ID)更換為自己專案的PROJECT_ID) [文件](https://cloud.google.com/stackdriver/docs/managed-prometheus/query?hl=zh-cn#promui-deploy) #### 部署frontend 服務 ``` curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.7.0/examples/frontend.yaml | sed 's/\$PROJECT_ID/PROJECT_ID/' | kubectl apply -n sample -f - ``` #### 創建服務帳號 ``` gcloud iam service-accounts create gmp-test-sa ``` [向服務帳號授予所需viewer授權權限](https://cloud.google.com/stackdriver/docs/managed-prometheus/query?hl=zh-cn#explicit-credentials) ``` gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer ``` #### 打開前端 Deployment 進行修改 ``` kubectl -n sample edit deploy frontend ``` ``` spec: template containers: - name: frontend args: - --query.credentials-file=/gmp/key.json ... volumeMounts: - name: gmp-sa mountPath: /gmp readOnly: true ... volumes: - name: gmp-sa secret: secretName: gmp-test-sa ``` --- ### 7. 創建服務帳號與授權 [服務帳號文件](https://cloud.google.com/stackdriver/docs/managed-prometheus/rules-managed?hl=zh-cn#explicit-credentials) ##### 以下內容的(PROJECT_ID)更換為自己專案的PROJECT_ID #### 設置為目標項目 ``` gcloud config set project PROJECT_ID ``` #### 創建服務帳號(第七步驟有做到,就可以跳過) ``` gcloud iam service-accounts create gmp-test-sa ``` #### 向服務帳號授予所需metricWriter權限 ``` gcloud projects add-iam-policy-binding PROJECT_ID\ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter ``` #### 創建並下載服務帳號的密鑰 ``` gcloud iam service-accounts keys create gmp-test-sa-key.json \ --iam-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com ``` #### 將key作為Secret添加至非gke集群 ``` kubectl -n gmp-public create secret generic gmp-test-sa \ --from-file=key.json=gmp-test-sa-key.json ``` #### 打開 OperatorConfig 資源進行修改 ``` kubectl -n gmp-public edit operatorconfig config ``` #### 文本添加到資源 ``` rules: credentials: name: gmp-test-sa key: key.json ``` --- ### 8. 安裝grafana ``` helm repo add grafana https://grafana.github.io/helm-charts ``` ``` helm repo update ``` ``` helm install grafana grafana/grafana ``` --- ### 9. grafana 設定 [port-forward svc/grafana 3000](https://cloud.google.com/stackdriver/docs/managed-prometheus/query?hl=zh-cn#grafana-deploy) [port-forward svc/frontend 9090](https://cloud.google.com/stackdriver/docs/managed-prometheus/query?hl=zh-cn#promui-deploy) #### frontend服務做port-forward ``` kubectl -n sample port-forward svc/frontend 9090 ``` #### grafana服務做port-forward ``` kubectl -n sample port-forward svc/grafana 3000 ``` #### [http://localhost:3000](http://localhost:3000)進入到grafana #### 帳號 admin #### 查詢grafana密碼 ``` kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo ``` #### 添加promestheus的數據源  ``` http://frontend.sample.svc:9090 ``` ---
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.