12.3 メトリック・サーバーのトラブルシューティング

Kubernetesメトリック・サーバーがREADY 1/1の状態にならない場合は、次のコマンドを実行します:
kubectl describe pod <metrics-server-pod> -n kube-system
kubectl logs <metrics-server-pod> -n kube-system
次のようなエラーが表示された場合:
Readiness probe failed: HTTP probe failed with statuscode: 500
および:
E0907 13:07:50.937308       1 scraper.go:140] "Failed to scrape node" err="Get \"https://X.X.X.X:10250/metrics/resource\": x509: cannot validate certificate for 100.105.18.113 because it doesn't contain any IP SANs" node="worker-node1"
状況によっては、Kubernetesクラスタ用の有効なクラスタ証明書をインストールする必要があります。
テスト目的で、次の方法でこの問題を解決できます:
  1. 次のコマンドを実行して、Kubernetesメトリック・サーバーを削除します:
    kubectl delete -f $WORKDIR/kubernetes/hpa/components.yaml
  2. $WORKDIR/hpa/components.yamlを編集し、args:セクションを見つけます。引数にkubelet-insecure-tlsを追加します。例:
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --kubelet-insecure-tls
        - --metric-resolution=15s
        image: registry.k8s.io/metrics-server/metrics-server:v0.6.4
     ...
  3. 次のコマンドを使用して、Kubernetesメトリック・サーバーをデプロイします:
    kubectl apply -f components.yaml
  4. 次を実行して、READYステータスに1/1が表示されることを確認します:
    kubectl get pods -n kube-system | grep metric
    出力は次のようになります。
    metrics-server-d9694457-mf69d           1/1     Running   0             40s