kube-apiserverメトリクス照会
ホーム画面 > クラスタープロジェクト選択 > クラスター > kube-apiserverメトリクス照会
要求事項
-
WhaTap Kubernetesエージェント1.5.6バージョン以降が必要です。
-
Kubernetesクラスタープロジェクト(
CP
)の場合、該当メニューを照会できます。
kube-apiserverは、コントロールプレーン(Control Plane) 内外部のリクエストを処理するコンポーネントです。 kube-apiserverメトリクス照会メニューを通じてkube-apiserverから収集される指標の原本データ整合性(Data Consistency)を確認できます。
基本画面ガイド
kube-apiserverメトリクス照会メニューは、kube-apiserver対象に収集したモニタリング原本データをカテゴリ別に照会する機能を提供します。 最近5分間に収集したデータが1分おきに反映されます。
-
上段左のタイムセレクターを通じて、過去の特定の時点のデータを照会できます。 過去のデータ照会時に希望するオプションを選択した後、 検索アイコンをクリックします。
-
照会する最大カウントを設定できます。
-
メトリクスをフィルタリングして、ソースデータを必要に応じて加工できます。
-
上段右側のダウンロードアイコンを選択し、希望するデータを_CSV_形式のファイルでダウンロードできます。
フィルター
フィルターオプションを活用する時、希望するを選択して照会できます。 and
条件を使用すると、複数のフィルターが適用できます。
-
フィルター入力ウインドウで追加アイコンを選択すると、次のようにフィルターを追加するウィンドウが表示されます。
-
フィルターキーと条件を選択してください。
-
条件に合った値を選択してください。
-
-
フィルター設定後、適用ボタンをクリックし、フィルターを適用してください。
-
複数のフィルターを追加するには、フィルター入力ウインドウまたはフィルターを追加するウィンドウで追加アイコンを選択してください。
kube-apiserverモニタリング活性化
WhaTap Kubernetesエージェントのインストール時にダウンロードしたyamlファイルを以下の案内に従って修正し、kube-apiserverモニタリングを活性化します。
-
whatap-master-agent
deploymentのspec下位にkube-apiserverモニタリングのためのエージェントコンテナspecを追加します。containers:
- name: whatap-control-plane-helper
image: whatap/kube_mon
imagePullPolicy: Always
ports:
- containerPort: 9496
command: ["/data/agent/master/whatap_control_plane_helper"]
args: ["-collect_control_plane_monitoring_enabled=true"]次の例を参照にしてください。
apiVersion: apps/v1
kind: Deployment
metadata:
name: whatap-master-agent
namespace: whatap-monitoring
spec:
replicas: 1
selector:
matchLabels:
name: whatap-master-agent
template:
metadata:
labels:
name: whatap-master-agent
spec:
containers:
- name: whatap-control-plane-helper
image: whatap/kube_mon
imagePullPolicy: Always
ports:
- containerPort: 9496
command: ["/data/agent/master/whatap_control_plane_helper"]
args: ["-collect_control_plane_monitoring_enabled=true"]
- name: whatap-master-agent
image: whatap/kube_mon
imagePullPolicy: Always
resources:
requests:
memory: 300Mi
cpu: 100m
limits:
memory: 350Mi
cpu: 200m
ports:
- containerPort: 6600
command: ['/bin/entrypoint.sh']
env:
- name: WHATAP_LICENSE
value: "xxxxxxxx-12345xxxxxx-x00e000000xxx8"
- name: WHATAP_HOST
value: "13.124.11.223/13.209.172.35"
- name: WHATAP_PORT
value: "6600"
- name: WHATP_MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: whatap-master-agent
resource: limits.memory
volumeMounts:
- name: start-script-volume
mountPath: /bin/entrypoint.sh
readOnly: true
subPath: entrypoint.sh
- mountPath: /whatap_conf
name: whatap-config-volume
volumes:
- name: start-script-volume
configMap:
defaultMode: 0700
name: master-start-script
- name: whatap-config-volume
emptyDir: {}
serviceAccount: whatap -
whatap-master-agent
deploymentのwhatap-master-agent
コンテナspecのenv設定に次の内容を追加します。env:
- name: collect_control_plane_monitoring_enabled
value: "true"次の例を参照にしてください。
apiVersion: apps/v1
kind: Deployment
metadata:
name: whatap-master-agent
namespace: whatap-monitoring
spec:
replicas: 1
selector:
matchLabels:
name: whatap-master-agent
template:
metadata:
labels:
name: whatap-master-agent
spec:
containers:
- name: whatap-control-plane-helper
image: whatap/kube_mon
imagePullPolicy: Always
ports:
- containerPort: 9496
command: ["/data/agent/master/whatap_control_plane_helper"]
args: ["-collect_control_plane_monitoring_enabled=true"]
- name: whatap-master-agent
image: whatap/kube_mon
imagePullPolicy: Always
resources:
requests:
memory: 300Mi
cpu: 100m
limits:
memory: 350Mi
cpu: 200m
ports:
- containerPort: 6600
command: ['/bin/entrypoint.sh']
env:
- name: collect_control_plane_monitoring_enabled
value: "true"
- name: WHATAP_LICENSE
value: "xxxxxxxx-12345xxxxxx-x00e000000xxx8"
- name: WHATAP_HOST
value: "13.124.11.223/13.209.172.35"
- name: WHATAP_PORT
value: "6600"
- name: WHATP_MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: whatap-master-agent
resource: limits.memory
volumeMounts:
- name: start-script-volume
mountPath: /bin/entrypoint.sh
readOnly: true
subPath: entrypoint.sh
- mountPath: /whatap_conf
name: whatap-config-volume
volumes:
- name: start-script-volume
configMap:
defaultMode: 0700
name: master-start-script
- name: whatap-config-volume
emptyDir: {}
serviceAccount: whatap -
コントロールプレーンモニタリング性能指標を収集するために
whatap
ClusterRoleに次の権限を追加します。rules:
- nonResourceURLs: ["/metrics"]
verbs: ["*"]次の例を参照にしてください。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: whatap
namespace: whatap-monitoring
rules:
- apiGroups: ["*"]
resources: ["namespaces", "pods", "pods/log", "configmaps","services", "endpoints","daemonsets","ingresses","deployments","nodes","persistentvolumes","persistentvolumeclaims", "events", "replicasets", "roles", "rolebindings", "clusterroles", "clusterrolebindings", "jobs", "cronjobs", "statefulsets", "serviceaccounts", "configmaps", "storageclasses", "horizontalpodautoscalers" ]
verbs: ["get","list","watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["*"]
- nonResourceURLs: ["/metrics"]
verbs: ["*"]
---
kubectl apply
またはkubectl edit
コマンドを通じてkube-apiserverモニタリングを活性化できます。
kube-apiserverメトリクス
分類 | メトリクス | 説明 |
---|---|---|
API GETリクエスト | 1分当たりのGETリクエスト状況 | kube-apiserverのGETリクエストに対する1分当たりのリクエスト数 |
1秒当たりのGETリクエスト数の推移 | kube-apiserverのGETリクエストに対する1秒当たりのリクエスト数の推移 | |
Resource & Subresource別の1分当たりのGETリクエスト数の推移 | kube-apiserverに入ってきたGETリクエストのResourceとSubresourceごとの1分当たりのリクエスト数の推移 | |
API POSTリクエスト | 1分あたりのPOSTリクエストの状況 | kube-apiserverのPOSTリクエストに対する1分当たりのリクエスト数 |
1秒当たりのPOSTリクエスト数の推移 | kube-apiserverのPOSTリクエストに対する1秒当たりのリクエスト数の推移 | |
Resource & Subresource別のPOST1分当たりのリクエスト数の推移 | kube-apiserverに入ってきたPOSTリクエストに対してResourceとSubresourceごとにグループ化した1分当たりのリクエスト数の推移 | |
APIレスポンスコード別のリクエスト | [ 2xx ] 1分あたりのレスポンスのリクエスト状況 | kube-apiserverリクエストのうち、200以上300未満のレスポンスコードが出されたリクエスト数に対する1分当たりの現況 |
[ 2xx ] 1分当たりのレスポンスコードごとのリクエスト数の推移 | kube-apiserverリクエストのうち、200以上300未満のレスポンスコードが出されたリクエスト数に対するレスポンスコードごとの1分当たりの現況 | |
[ 2xx ] 1分当たりのResource & Subresourceごとのリクエスト数の推移 | kube-apiserverリクエストのうち、200以上300未満のレスポンスコードが出されたリクエストに対しResourceとSubresourceごとにグループ化した1分当たりのリクエスト数の推移 | |
[ 3xx ] 1分あたりのレスポンスのリクエスト状況 | kube-apiserverリクエストのうち、300以上400未満のレスポンスコードが出されたリクエスト数に対する1分当たりの現況 | |
[ 3xx ] 1分当たりのレスポンスコードごとのリクエスト数の推移 | kube-apiserverリクエストのうち、300以上400未満のレスポンスコードが出されたリクエスト数に対するレスポンスコードごとの1分当たりの現況 | |
[ 3xx ] 1分当たりのResource & Subresourceごとのリクエスト数の推移 | kube-apiserverリクエストのうち、300以上400未満のレスポンスコードが出されたリクエストに対しResourceとSubresourceごとにグループ化した1分当たりのリクエスト数の推移 | |
[ 400~ ] 1分あたりのレスポンスのリクエスト状況 | kube-apiserverリクエストのうち、400以上のレスポンスコードが出されたリクエスト数に対する1分当たりの現況 | |
[ 400~ ] 1分当たりのレスポンスコードごとのリクエスト数の推移 | kube-apiserverリクエストのうち、400以上のレスポンスコードが出されたリクエスト数に対するレスポンスコードごとの1分当たりの現況 | |
[ 400~ ] 1分当たりのResource & Subresourceごとのリクエスト数の推移 | kube-apiserverリクエストのうち、400以上のレスポンスコードが出されたリクエストに対しResourceとSubresourceごとにグループ化した1分当たりのリクエスト数の推移 | |
Go Metrics | Goルーチン数 | 現在存在するGoルーチンの数 |
スレッド数 | 現在存在するOSスレッド数 | |
現在実行中のリクエスト数(1秒) | 直近1秒以内に実行中のリクエスト数 | データ収集時にkube-apiserverで1秒以内に行われていたリクエスト数 |