内蔵のモニタcAdvisorコンテナを使用し
、すでに組み立てkubeletに組み込まれcAdvisorを、私たちはV1 /ノード/ <ノード> /プロキシ/メトリクス/独立し、cAdvisorデータパス/ APIをインストールする必要はありません
。1、求人が増加し、アップデートプロメテウスコンフィギュレーション
- job_name: 'kubernetes-cadvisor'
kubernetes_sd_configs:
- role: node
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: kubernetes.default.svc:443
- source_labels: [__meta_kubernetes_node_name]
regex: (.+)
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
プロメテウス-kubectl -f $ cm.yaml適用
$ kubectl GET SVC -n KUBE-OPS | grepのプロメテウス
プロメテウスNodePort 10.102.197.83 9090 <なし>:32619 / TCPの
$カール-X POST " http://10.102.197.83:9090 / - /リロード「#は、構成を検証します
監視apiserver
1、仕事を増やし、コンフィギュレーションの更新プロメテウス
- job_name: 'kubernetes-apiservers'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
プロメテウス-kubectl -f $ cm.yaml適用
$ kubectl GET SVC -n KUBE-OPS | grepのプロメテウス
プロメテウスNodePort 10.102.197.83 9090 <なし>:32619 / TCPの
$カール-X POST " http://10.102.197.83:9090 / - /リロード「#は、構成を検証します
一般的なSVC自動検出の設定と監視
1を、仕事を増やし、コンフィギュレーションの更新プロメテウス
- job_name: 'kubernetes-service-endpoints'
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
action: replace
target_label: kubernetes_name
自動的にクラスタサービスを発見するために、我々は、サービスの注釈領域を追加する必要があります。prometheus.io/scrape=true文
の$ kubectlはプロメテウス-cm.yaml -f適用します
$ kubectl GET SVC -n KUBE-OPS | grepのプロメテウス
NodePort 10.102.197.83プロメテウス9090 <なし>:32619 / TCPの
$カール-X POST " http://10.102.197.83:9090/-/reload "の設定#検証し
、2のSVCのRedisを変更し、動的に検出および監視するために(静的な知見に基づいて)
注釈を追加
kind: Service
apiVersion: v1
metadata:
name: redis
namespace: kube-ops
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9121"
spec:
selector:
app: redis
ports:
- name: redis
port: 6379
targetPort: 6379
- name: prom
port: 9121
targetPort: 9121
Redisのでprometheus.io/scrape=trueを追加前にこの注釈を作成し、このサービス
のサービス上記の9121のメトリックのサービス・インターフェースのRedisのRedisの-輸出国は、我々はまた、注釈に、このようなprometheus.io/port=9121を追加する必要があるため
Prome-kubectl -f $のredis.yaml適用
、3 SVCのtrafikを変更し、動的に発見し、(静的に基づいています)を監視します
apiVersion: v1
metadata:
name: traefik-ingress-service
namespace: kube-system
annotations:
prometheus.io/scrape: "true" #新增
prometheus.io/port: "8080" #新增
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- protocol: TCP
port: 80
name: web
- protocol: TCP
port: 8080
name: admin
type: NodePort
私たちは、新しいサービスを持っていた後、サービス自体は/メトリック・インターフェースを提供する場合、私たちは絶対に静的な方法を設定する必要はありません
、以下のようなサービスに動的な発見、デフォルトの自動動的検出および監視サービスを投入後:プロメテウス自体、kube- DNS
。4、自動検出KUBE-状態メトリック
ステートフルポッド、DaemonSet、展開、ジョブ実装は、 cronジョブクラスタ内の他のオブジェクトのリソースをKubernetes
$ Gitのクローンhttps://github.com/kubernetes/kube-state- metrics.git
$ CD KUBE-状態メトリック/ Kubernetes
$ kubectl -fを適用します。
Kubernetesに展開KUBE-状態メトリックの後、あなたはKubernetesクラスタサービスがございますkubernetesサービス・エンドポイントでは自動的プロメテウスこの仕事KUBE-状態メトリックを見つけ、そしてメトリクスを引くようになった、サービス定義はprometheus.io/scrapeを含みの展開マニフェスト定義ファイルKUBE-状態メトリックKUBE-状態メトリック-service.yamlためです:「真」そう1つの注釈