リソース指標:メトリック・サーバー
リソース指標:メトリック・サーバーの紹介
導入後、K8S V1.8から、Metric-API
リソースインデックスにheapsterアクセスの使用に以前、heapsterが自分の取得パスを持って、ないapiServerによって、そのリソースインデックス前のデータとの直接のアクセス、apiServerことができないユーザー、およびその他のコンポーネントを必要Kubernetesアクセスするためのマスタープロキシ道経由。後でK8SメトリクスServerコンポーネントとリソースインデックスのAPI(メトリックAPI)を紹介するだけでなく、いくつかのデータを収集するために、だけでなく、API、APIを公開したが統一するために、どのように要求しますAPI-サーバーの/apis/metrics
メトリックサーバに転送するための要求、解決策は次のとおりですkube-aggregator
、もはや他の手段を通じて、K8SでAPIからの直接のインデックスデータリソースはそうありません。
- 唯一の現在の測定データを照会することができメトリクスAPIは過去のデータを格納していません
- メトリックのAPI URIは、メンテナンスk8s.io/metrics /apis/metrics.k8s.io/です
- メトリック・サーバーは、APIを使用するためにKubeletの概要APIを呼び出すことによって取得メトリクス・サーバーのデータを配置する必要があります
メトリックサーバモードインジケータデータ収集は、各ノードkubeletによって提供概要APIからデータを収集することであるノードおよびポッドコア指標データリソース、主にメモリとCPU使用率態様収集情報を収集し、メモリに格納されているが、 kubectlトップ歴史的な状況を介してリソースデータを表示できないときに、他のリソースのインデックスデータは、プロメテウスによって収集されます。
K8Sは、これらのコンポーネントが実行されていないAPI・リソース測定基準、例えばkubectlトップ、HPA、そうでない場合、リソースインデックスAPIインタフェースの機能に応じて多くのコンポーネントです。
監視システムの新世代は、コア指標パイプラインおよびパイプライン監視指標の相乗的組成物で構成されてい
- パイプライン・コア指標:kubelet、メトリックサーバとなるAPIサーバーが提供するAPI、 CPU累積使用、リアルタイムでのメモリ使用率、ディスク使用率と容器ポッドのリソース使用率
- パイプライン監視:システムからデータを収集するために使用される指標の種類とエンドユーザに提供される、ストレージシステム及びHPAを、彼らは、多くの非コア指標とコア指標を含みます。非コア指標はK8Sを解決できません
メトリック-Serverの展開
ダウンロードファイルYAML
for i in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml;do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/metrics-server/$i; done
壁の、ミラーイメージを事前にダウンロードしているので、当然のことながら、手動でもYAML関連ファイルを変更することができます
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5 k8s.gcr.io/metrics-server-amd64:v0.3.5
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer:1.8.5
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer:1.8.5 k8s.gcr.io/addon-resizer:1.8.5
ファイル、またはエラーを修正します
修正resource-reader.yaml
# 在resources下添加一行nodes/stats, 下列代码为部分代码
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:metrics-server
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
rules:
- apiGroups:
- ""
resources:
- pods
- nodes/stats #添加此行
- nodes
- namespaces
修正metrics-server-deployment.yaml
デフォルトのインデックスデータ取得のHTTPから10255ベースのkubeletのポートが、セキュリティ通信の目的のために、kubeadmクラスタを初期化するとき、それは不可能正常なデータを得ることができる、ポート10255をオフにします
# 第一个container metrics-server的command只留下以下三行
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.5
command:
- /metrics-server
- --kubelet-insecure-tls # 不验证客户端证书
- --kubelet-preferred-address-types=InternalIP # 直接使用节点IP地址获取数据
# 第二个container metrics-server-nanny的command中内存和CPU修改为自己需要的具体的数值
command:
- /pod_nanny
- --config-dir=/etc/config
- --cpu=20m
- --extra-cpu=0.5m
- --memory=200Mi #{{ base_metrics_server_memory }}
- --extra-memory=50Mi
- --threshold=5
- --deployment=metrics-server-v0.3.5
- --container=metrics-server
- --poll-period=300000
- --estimator=exponential
- --minClusterSize=10
作りますMetric-Server
# 进入到yaml文件目录执行命令
kubectl apply -f ./
# 可以看到pod已经运行起来了
kubectl get pods -n kube-system |grep metrics-server
[root@master ~]# kubectl api-versions|grep metrics #已经可以看到metric的api了
metrics.k8s.io/v1beta1
[root@master ~]# kubectl proxy --port=8080
[root@master ~]# curl http://localhost:8080/apis/metrics.k8s.io/v1beta1
[root@master ~]# curl http://localhost:8080/apis/metrics.k8s.io/v1beta1/nodes
# kubectl可以使用了
[root@master ~]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 513m 25% 1348Mi 78%
node01 183m 18% 1143Mi 66%
カスタムリソース指標:プロメテウス
プロメテウスは、他の指標の様々な捕捉プロメテウス収集されたメトリックと直接ではなくK8Sに、データ形式の両方に互換性がないため、それはまた別のコンポーネントが必要であることができ(kube-state-metrics)
、データ形式プロメテウスに認識可能な指標K8S APIインターフェイスを変換しましたフォーマット変換した後、としては、カスタムAPIであるので、我々はまた、使用する必要がありますKubernetes aggregator
直接/ APIを/アクセスを通じて順にメインサーバのAPIに登録します。
K8S-プロメテウス・アダプター・プロジェクト
プロメテウス
上記のように、それぞれが専用のホストによってモニターすることができるexporter
プログラムインタフェース出力監視データを提供し、待つPrometheus
、サーバは、定期的にデータをフェッチします。アラームルールが存在した後、次いで、警報は、警報状態が発生したとする送られる満たし、データをフェッチする場合には、ルールに従って計算されるAlertmanager
アラーム集約及び分布を完了します。アクティブなプッシュ対象のデータを監視するための要求があるときは、することができPushgateway
受け、一時的にデータコンポーネントを保存し、その後のを待ちPrometheus
、データ収集を完了するためのサーバー。
- 監視エージェント:もし
node_exporter
そのようなように、平均負荷、CPU、メモリ、ディスク、ネットワーク、およびAS指標データ収集ホストの複数のディメンション、からインデックスデータ: - kubelet(cAdvisor):回収容器インデックスデータは、K8Sをコア指標を収集し、各コンテナ関連するインデックスデータは:CPU使用率、制限、ファイルシステムを読み書きクォータ制限、及びメモリ使用量、ネットワークパケットの送信、受信をその上率を破棄し。
- APIサーバー:APIサーバーは、キューの制御性能、要求レートと遅延時間の長さなどを含む、パフォーマンスデータを収集します
- etcd:メトリックデータの収集は、ストレージクラスタをetcd
- KUBEステートメトリック:このコンポーネントは、メインカウンタ及びメタデータ情報に関連するインデックスデータのK8Sの複数導出することができる製剤、リソース割り当て、及び容器ステータスポッドリソースラベルシリーズの種類のオブジェクトの総数を含む、リソースタイプに関連付けられています。
プロメテウスを監視し、クラスタの監視をすることができ、すべてのオブジェクトのためのサービス発見システムとしてのAPIサーバーを見つけ
、ここで特別な注意の必要性を、ポッドリソースは、次の注釈情報を追加する必要が自動的プロメテウスシステムを発見することができ、その内蔵のグラブインデックスデータ。
- prometheus.io/scrape:インデックスデータを取得するかどうかを、真/偽
- prometheus.io/path:URLパスインデックスデータをフェッチするとき、多くの場合、使用/メトリック
- prometheus.io/port:インデックスデータをクロールするときに使用するソケットポートのポート番号
唯一の希望プロメテウスは、バックエンド用のカスタム指標を生成すると、あなただけでも持続機能せず、サービスプロメテウスを展開することができます
プロメテウスは、クラスタK8Sで展開しました
githubのアドレス
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus
展開されるサービスのリスト
node-exporter
:プロメテウスエクスポート、監視データのレベルが収集ノードprometheus
:サーバ、ノード、輸出からプルアップデータを監視し、時系列データとして記憶されます。kube-state-metrics
:プロメテウスは、対応するデータK8SにインデックスPromQLデータにクエリを変換するために使用することができますk8s-prometheus-adpater
:重合フィードapiserverは、つまり、カスタム・メトリック・apiserverが実装します开启Kubernetes aggregator功能
(メトリック・サーバー上で参照してください)
すべてのサービスとプラグインのインストールと展開
展開KUBE-状態メトリック
# 下载相关yaml文件
for i in kube-state-metrics-deployment.yaml kube-state-metrics-rbac.yaml kube-state-metrics-service.yaml; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/prometheus/$i; done
# 所有节点都要执行
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer:1.8.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer:1.8.6 k8s.gcr.io/addon-resizer:1.8.6
docker pull quay-mirror.qiniu.com/coreos/kube-state-metrics:v1.3.0
docker tag quay-mirror.qiniu.com/coreos/kube-state-metrics:v1.3.0 quay.io/coreos/kube-state-metrics:v1.3.0
# 查看提供的指标数据
curl 10.105.51.200:8080/metrics # 10.105.51.200 是Service的IP
展開とノードの輸出輸出
9100ポートをリスニング
実際、kubeletまたはcAdvisorによりインデックスデータノードを提供することができ、各ノード自体は、プログラムをnode_exporterインストールする必要はありません
for i in node-exporter-ds.yml node-exporter-service.yaml; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/prometheus/$i; done
kubectl apply -f ./
curl 10.0.0.51:9100/metrics # 10.0.0.51是node01节点的IP
警報システムのAlertManager
prometheus
アラームルールに送信アラーム情報alertmanager
、及びその後alertmanager
受信したアラーム情報の重複を含む処理、および受信側警報にルートパケットの
永続ストレージ・ボリュームを使用してのAlertManager、PVC、ここでしかテストし、そのように修飾のこの部分;ポート9093は、Web UIになります
for i in alertmanager-configmap.yaml alertmanager-deployment.yaml alertmanager-pvc.yaml alertmanager-service.yaml; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/prometheus/$i; done
# 修改alertmanager-deployment.yaml的pvc设置
volumes:
- name: config-volume
configMap:
name: alertmanager-config
- name: storage-volume
emptyDir: {}
# persistentVolumeClaim:
# claimName: alertmanager
# 修改alertmanager-service.yaml
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 9093
nodePort: 30093
selector:
k8s-app: alertmanager
type: "NodePort"
kubectl apply -f ./
kubectl get deployments -n kube-system
# 浏览器可以直接访问到Web UI
http://10.0.0.50:30093/#/alerts
サービス展開プロメテウス
プロメテウスは、ウェブUI、ポート9090、必要な記憶容量を提供volumeClaimTemplatesによって提供され、これだけテストので、変形のこの部分ので、取付配備マルコの使用
# 官方安装yaml文件
for i in prometheus-configmap.yaml prometheus-rbac.yaml prometheus-service.yaml prometheus-statefulset.yaml; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/prometheus/$i; done
# 马哥安装yaml文件
git clone https://github.com/iKubernetes/k8s-prom.git && cd k8s-prom #我只使用了这里边的prometheus文件, 并且把namespace统一修改成了kube-system
[root@master prometheus]# ls
prometheus-cfg.yaml prometheus-deploy.yaml prometheus-rbac.yaml prometheus-svc.yaml
kubectl apply -f ./
# 查看Web UI:
http://10.0.0.50:30090
カスタムメトリックアダプタK8S-プロメテウスアダプタ
PromQLが直接カスタム指標などのデータソースへのインターフェイスではない、それはサーバは、重合APIではありません
が必要ですk8s-prometheus-adapter
# 配置ssl证书
cd /etc/kubernetes/pki/
(umask 077;openssl genrsa -out serving.key 2048)
openssl req -new -key serving.key -out serving.csr -subj "/CN=serving"
openssl x509 -req -in serving.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out serving.crt -days 3650
カスタムメトリックのデフォルトの名前空間で展開K8S-プロメテウス・アダプタは、この名前空間に秘密のオブジェクトを作成します
serving.crtとserving.keyと呼ばれる証明書と秘密鍵、
cd /etc/kubernetes/pki/
kubectl create namespace custom-metrics
kubectl create secret generic cm-adapter-serving-certs -n custom-metrics --from-file=serving.crt=./serving.crt --from-file=serving.key=./serving.key
git clone https://github.com/DirectXMan12/k8s-prometheus-adapter
cd k8s-prometheus-adapter/deploy/manifests/
# 编辑:custom-metrics-apiserver-deployment.yaml 第28行. 因为我的promethus部署在了kube-system名称空间中
--prometheus-url=http://prometheus.prom.svc:9090/ -> --prometheus-url=http://prometheus.kube-system.svc:9090/
# 查看API
kubectl api-versions | grep custom
# 列出指标名称
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1" | jq '.resources[].name'
# 查看pod内存占用率
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/kube-system/pods/*/memory_usage_bytes" | jq
HPA自動弾性スケーリング
自動格納式の伸縮ツールオートスケーリング:
- HPA、水平ポッドAutoscaler、二つのバージョン、HPAインデックスCPUのサポートのみ; HPAv2サポートリソースインデックスAPIおよびカスタムメトリックスAPI
- CA、クラスタAutoscaler、弾性伸縮クラスタサイズは自動的に、自動的にクラウド環境のノードの数を増減することができ
- VPA、垂直ポッドAutoscaler、ポッド垂直スケーリングアプリケーションツール、伸縮を完了するために、オブジェクトポッドのCPUとメモリのリソース要件を調整します
- AR、リソースの追加の構成要素に対する需要を調整するために、クラスタ内のノードの数に基づいて、アドオンリサイズ、アプリケーションポッド垂直スケーリングツールの簡略版、
水平方向のポッド自動スケーリングが可能CPU使用率に応じて(内存为不可压缩资源)
自動伸縮複製コントローラー、展開またはポッドレプリカセットの数。
HPA自体は制御周期、--horizontal-POD-autoscaler-SYNC-によって定義される周期である周期オプションコントローラマネージャの、デフォルトの30秒
ポッドは未定義ターゲットリソース要求のために、コントローラは、容器HPAのCPU使用率を定義することはできません率は、および指標の任意のアクションを取ることはありません
ポッドカスタム指標のそれぞれに対して、HPAだけでなく、元の値の利用方法
ジッタを防止するために、遅延量削減5分のデフォルトの長さ、時間遅延拡張長さ3分、
HPAは、現在、2つだけのバージョンが、あるバージョンのみV1定義コア指標をサポートをサポートします。
[root@master ~]# kubectl api-versions |grep autoscaling
autoscaling/v1 # 仅支持CPU一种资源指标的扩容
autoscaling/v2beta1 # 支持更多自定义资源指标的扩容
autoscaling/v2beta2 # 支持更多自定义资源指标的扩容
実験1:HPA
コマンドラインで限られたリソースでポッドを作成します
kubectl run myapp --image=ikubernetes/myapp:v1 --replicas=1 --requests='cpu=50m,memory=100Mi' --limits='cpu=50m,memory=100Mi' --labels='app=myapp' --expose --port=80
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-cf57cd7b-2r6q2 1/1 Running 0 2m3s
ここでは、ポッドことができ、自動的に水平展開をmyappにしましょう
kubectlオートスケールでは、実際には、それはHPAコントローラを作成することです
kubectl autoscale deployment myapp --min=1 --max=8 --cpu-percent=60
# --min:表示最小扩展pod的个数
# --max:表示最多扩展pod的个数
# --cpu-percent:cpu利用率
[root@master ~]# kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
myapp Deployment/myapp 0%/60% 1 8 1 4m14s
kubectl patch svc myapp -p '{"spec":{"type": "NodePort"}}'
kubectl get svc |grep myapp
# [root@master ~]# kubectl get svc |grep myapp
# myapp NodePort 10.99.246.253 <none> 80:31835/TCP 11m
#压测命令
ab -c 100 -n 500000000 http://10.0.0.51:30304/index.html
[root@master manifests]# kubectl describe hpa |grep -A 3 "resource cpu"
resource cpu on pods (as a percentage of request): 81% (40m) / 60%
Min replicas: 1
Max replicas: 8
Deployment pods: 3 current / 3 desired
[root@master manifests]# kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-cf57cd7b-2lqdx 1/1 Running 0 14m
myapp-cf57cd7b-bwm4h 1/1 Running 0 3m19s
myapp-cf57cd7b-fc5ns 1/1 Running 0 91s
# 压测结束五分钟后, 资源恢复到初始值
[root@master manifests]# kubectl describe hpa |grep -A 3 "resource cpu"
resource cpu on pods (as a percentage of request): 0% (0) / 60%
Min replicas: 1
Max replicas: 8
Deployment pods: 1 current / 1 desired
[root@master manifests]# kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-cf57cd7b-2lqdx 1/1 Running 0 22m
実験2:HPA v2の
HPA(V2)コア指標メトリックサーバからの支援要求を、カスタムメトリックK8S-プロメテウス・アダプタAPIからデータを取得し、カスタムクラス、場合指数計算複数の、大勝利の数値結果
ルールナンバーワン
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: myapp
spec:
scaleTargetRef: # 要缩放的目标资源
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
- type: Resource
resource:
name: memory
targetAverageValue: 50Mi
メトリックは、コピーポッドインデックスリストの必要数を算出するのコピーの最終数の全ての結果を取って、各指標について別々に計算された最大値と
- 外部:非基準グローバルインデックスに取り付けられた任意のオブジェクト、インデックスデータは、メッセージキューの長さとして、クラスタ以外の部品であってもよいです
- 目的:このようなヒット毎秒他のオブジェクトの入力でのように、単一のオブジェクトの特定のクラスタ索引の説明を参照
- ポッド:特定の参照インデックスが現在伸縮性オブジェクトポッドであります
- リソース:リソース参照インデックス、すなわち、要求は現在弾性伸縮容器であるポッド限界定義メトリックオブジェクト
- タイプ:オブジェクトのタイプインジケータソース、ポッド、リソース
ルール番号2
/メトリックおよびパス出力によってikubernetes /メトリクスアプリランタイムはhttp_requests_total http_requests_per_second 2つのインジケータは
prometheus.io/scrape:"true注意「ポッドは、メトリックPromethuesを収集するオブジェクトを有効にします
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: metrics-app
name: metrics-app
spec:
replicas: 2
selector:
matchLabels:
app: metrics-app
template:
metadata:
labels:
app: metrics-app
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "80"
prometheus.io/path: "/metrics"
spec:
containers:
- image: ikubernetes/metrics-app
name: metrics-app
ports:
- name: web
containerPort: 80
resources:
requests:
cpu: 200m
memory: 256Mi
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 3
periodSeconds: 5
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 3
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: metrics-app
labels:
app: metrics-app
spec:
ports:
- name: web
port: 80
targetPort: 80
selector:
app: metrics-app
curl 10.98.175.207/metrics # IP为上一个文件创建的service IP
HPAの作成
Prometheus
ポッド新しく、その後で提供取得オブジェクト識別指数と注釈に含まれる構成情報に応じて、サービス発見機構で見つかったオブジェクトを作成しk8s-prometheus-adapter
、これらのメトリックは、カスタムAPIに登録し、それがに提供されHPA(v2)
、コントローラなどをスケジュールするスケジューラは、評価パラメータとして使用されています
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: metrics-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: metrics-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Pods
pods:
metricName: http_requests_per_second
targetAverageValue: 800m # 800m 即0.8个/秒
# 压测命令
while true; do curl 10.98.175.207/metrics &>/dev/null; sleep 0.1; done # IP为service IP
圧力試験結果
[root@master ~]# kubectl describe hpa metrics-app-hpa |grep -A 4 Metrics
Metrics: ( current / target )
"http_requests_per_second" on pods: 4350m / 800m
Min replicas: 2
Max replicas: 10
Deployment pods: 10 current / 10 desired
http_requests_per_secondをカスタム指標を追加します。
編集k8s-prometheus-adapter/deploy/manifests/custom-metrics-config-map.yaml
ルールを追加します。
rules:
- seriesQuery: 'http_requests_total{kubernetes_namespace!="",kubernetes_pod_name!=""}'
resources:
overrides:
kubernetes_namespace: {resource: "namespace"}
kubernetes_pod_name: {resource: "pod"}
name:
matches: "^(.*)_total"
as: "${1}_per_second"
metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[2m])) by (<<.GroupBy>>)'
カスタムルール参考資料:
K8Sカスタム指標にアップグレードプロメテウス指標は、我々はルールを定義する必要があります
- https://github.com/DirectXMan12/k8s-prometheus-adapter/blob/master/docs/config-walkthrough.md
- https://github.com/DirectXMan12/k8s-prometheus-adapter/blob/master/docs/walkthrough.md
http_requests_totalコマンドhttp_requests_per_secondカスタム指標は
設定を有効にすることができます:
あなたは、カスタム・メトリック・apiserver-XXXXポッドマニュアルはカスタム距離空間の削除カスタムメトリクス-CONFIG-map.yamlを使用する必要があります
注:設定マップを変更した後、削除しないでくださいポッドは、有効になりません。
テスト:
PODS -w GET kubectl
カール10.104.226.230/metrics
kubectl ITの迅速化クライアント--image RUN = cirros --rm - / binに/ SH
trueにしばらく;やるカールHTTPを://のApp-メトリクス; I ++はLET; SLEEP 0 。$ RANDOM;#アナログ圧力をやっ
とき5分、3分のとき、遅延拡張の長さディレイボリューム削減のデフォルトの長さ:テストに達することはので、自動拡張を確認するために数分を必要とした後、
参考リンク
https://www.cnblogs.com/fawaikuangtu123/p/11296510.html
https://www.qingtingip.com/h_252011.html
https://www.servicemesher.com/blog/prometheus-operator-manual/
ます。https: //www.cnblogs.com/centos-python/articles/10921991.html
https://pdf.us/tag/docker