簡體   English   中英

記錄Kubernetes容器資源利用率數據

[英]Record Kubernetes container resource utilization data

我正在對部署在EKS cluster上的 web 服務器進行性能測試。 我正在使用jmeter以不同的條件(如不同的線程數、有效負載大小等)調用服務器。 所以我想用時間戳記錄kubernetes數據,以便我可以用我的 jmeter output ( JTL ) 分析這些數據。

我一直在通過互聯網挖掘尋找記錄kubernetes perf的方法。 但是我找不到合適的方法來做到這一點。

專家可以請給我一個標准的方法來做到這一點嗎?

注意:我也有一個多容器吊艙。

與@Jonas 評論一致

這是在 K8 集群中安裝 Prometheus 的最快方式。 在答案中添加了詳細信息,因為無法將命令以可讀格式放在評論中。

  1. 添加 bitnami helm repo。
helm repo add bitnami https://charts.bitnami.com/bitnami
  1. 為 promethus 安裝 helmchart
helm install my-release bitnami/kube-prometheus

安裝 output 將是:

C:\Users\ameena\Desktop\shine\Article\K8\promethus>helm install my-release bitnami/kube-prometheus
NAME: my-release
LAST DEPLOYED: Mon Apr 12 12:44:13 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **

Watch the Prometheus Operator Deployment status using the command:

    kubectl get deploy -w --namespace default -l app.kubernetes.io/name=kube-prometheus-operator,app.kubernetes.io/instance=my-release

Watch the Prometheus StatefulSet status using the command:

    kubectl get sts -w --namespace default -l app.kubernetes.io/name=kube-prometheus-prometheus,app.kubernetes.io/instance=my-release

Prometheus can be accessed via port "9090" on the following DNS name from within your cluster:

    my-release-kube-prometheus-prometheus.default.svc.cluster.local

To access Prometheus from outside the cluster execute the following commands:

    echo "Prometheus URL: http://127.0.0.1:9090/"
    kubectl port-forward --namespace default svc/my-release-kube-prometheus-prometheus 9090:9090

Watch the Alertmanager StatefulSet status using the command:

    kubectl get sts -w --namespace default -l app.kubernetes.io/name=kube-prometheus-alertmanager,app.kubernetes.io/instance=my-release

Alertmanager can be accessed via port "9093" on the following DNS name from within your cluster:

    my-release-kube-prometheus-alertmanager.default.svc.cluster.local

To access Alertmanager from outside the cluster execute the following commands:

    echo "Alertmanager URL: http://127.0.0.1:9093/"
    kubectl port-forward --namespace default svc/my-release-kube-prometheus-alertmanager 9093:9093

  1. 按照命令將 UI 轉發到 localhost。
echo "Prometheus URL: http://127.0.0.1:9090/"
    kubectl port-forward --namespace default svc/my-release-kube-prometheus-prometheus 9090:9090
  1. 在瀏覽器中打開用戶界面: http://127.0.0.1:9090/classic/graph

  2. 注釋 pod 以發送指標。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 4 # Update the replicas from 2 to 4
  template:
    metadata:
      labels:
        app: nginx
      annotations:
        prometheus.io/scrape: 'true'
        prometheus.io/port: '9102'
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
  1. 在 ui 中放置適當的過濾器並開始觀察關鍵參數,例如 memory CPU 等。UI 支持自動完成,因此弄清楚事情並不難。

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM