diff --git a/metrics-server/README.md b/metrics-server/README.md index 463cac6..6df7264 100644 --- a/metrics-server/README.md +++ b/metrics-server/README.md @@ -3,27 +3,71 @@ ## 1. 概要 -クラスタ内のリソース使用状況を取得するメトリクスサーバー +クラスタ内のリソース使用状況を取得するメトリクスサーバー。ノード単位、Pod単位の基本的なメトリクス(CPU、メモリなど)を取得することができる。 AWS(EKS)にはデフォルトで導入されないため、メトリクスを取得する際は導入する必要がある。 ## 2. 導入 -``` -$ kubectl apply -f metrics-server/application.yaml +```bash +kubectl apply -f metrics-server/application.yaml ``` ## 3. 確認 +### メトリクスサーバーの動作確認 + +```bash +kubectl get deployment metrics-server -n kube-system ``` -$ kubectl get deployment metrics-server -n kube-system +
NAME READY UP-TO-DATE AVAILABLE AGE metrics-server 1/1 1 1 6m ++ +### メトリクスの確認 + +```bash +kubectl top node +``` + +
+NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% +ip-192-168-1-71.ap-northeast-1.compute.internal 26m 1% 626Mi 19% +ip-192-168-2-120.ap-northeast-1.compute.internal 25m 1% 576Mi 18% +ip-192-168-2-90.ap-northeast-1.compute.internal 25m 1% 701Mi 22% ++ +```bash +kubectl top pod -n kube-system ``` +
+NAME CPU(cores) MEMORY(bytes) +aws-node-dsnl5 3m 56Mi +aws-node-m82bm 2m 56Mi +aws-node-nppl7 2m 57Mi +coredns-6c4ffd9cc7-98wch 1m 12Mi +coredns-6c4ffd9cc7-xsj6t 1m 12Mi +ebs-csi-controller-5cd87b44cd-n5wwq 2m 52Mi +ebs-csi-controller-5cd87b44cd-scw8r 3m 51Mi +ebs-csi-node-hmm9h 1m 19Mi +ebs-csi-node-klpj5 1m 19Mi +ebs-csi-node-mf2js 1m 19Mi +kube-proxy-hpjnr 1m 11Mi +kube-proxy-l9stm 1m 11Mi +kube-proxy-xkp8j 1m 11Mi +metrics-server-967bc8b5c-h6pw7 2m 14Mi ++ ## 4. 削除 +ArgoCDのコンソール画面よりmetrics-serverの削除を行う。 + +kubectlによる削除を行う場合は、Applicationリソースおよびmetrics-serverリソースの両方を削除する。 + ``` -$ kubectl delete -f metrics-server/application.yaml +kubectl delete -f metrics-server/application.yaml +kubectl delete -f metrics-server/manifests/. ``` diff --git a/metrics-server/manifests/components.yaml b/metrics-server/manifests/components.yaml index 1489431..03bf859 100644 --- a/metrics-server/manifests/components.yaml +++ b/metrics-server/manifests/components.yaml @@ -33,14 +33,17 @@ metadata: k8s-app: metrics-server name: system:metrics-server rules: +- apiGroups: + - "" + resources: + - nodes/metrics + verbs: + - get - apiGroups: - "" resources: - pods - nodes - - nodes/stats - - namespaces - - configmaps verbs: - get - list @@ -130,10 +133,11 @@ spec: containers: - args: - --cert-dir=/tmp - - --secure-port=4443 + - --secure-port=10250 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname - --kubelet-use-node-status-port - image: registry.k8s.io/metrics-server/metrics-server:v0.4.4 + - --metric-resolution=15s + image: registry.k8s.io/metrics-server/metrics-server:v0.7.0 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 @@ -144,7 +148,7 @@ spec: periodSeconds: 10 name: metrics-server ports: - - containerPort: 4443 + - containerPort: 10250 name: https protocol: TCP readinessProbe: @@ -153,11 +157,22 @@ spec: path: /readyz port: https scheme: HTTPS + initialDelaySeconds: 20 periodSeconds: 10 + resources: + requests: + cpu: 100m + memory: 200Mi securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000 + seccompProfile: + type: RuntimeDefault volumeMounts: - mountPath: /tmp name: tmp-dir