web-dev-qa-db-ja.com

Kubernetes:kubectlの最上位ノード/ポッドが機能しない

Kubectl top pods/nodesを実行すると、次のエラーが発生します。

指標はまだ利用できません

ログを確認すると、

$ kubectl logs metrics-server-7df4c4484d-h75wr -n kube-system -c metrics-server

I1008 12:02:55.159069       1 serving.go:273] Generated self-signed cert(apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
[restful] 2018/10/08 12:02:56 log.go:33: [restful/swagger] listing is available at https://:443/swaggerapi
[restful] 2018/10/08 12:02:56 log.go:33: [restful/swagger] https://:443/swaggerui/ is mapped to folder /swagger-ui/
I1008 12:02:56.358063       1 serve.go:96] Serving securely on [::]:443
E1008 12:03:04.225519       1 reststorage.go:101] unable to fetch node metrics for node "hpa-test": no metrics known for node "hpa-test"
E1008 12:03:07.619489       1 reststorage.go:101] unable to fetch node metrics for node "hpa-test": no metrics known for node "hpa-test"

また、私はhpa-testノードにpingできます:

$ kubectl exec -it  metrics-server-7df4c4484d-h75wr -n kube-system sh

また、私はどこでも解決策を探してみましたが、問題は修正されませんでした

7
Mallikarjun Br

メトリックサーバーのフラグを追加する必要があります。

--kubelet-insecure-tls=true
--kubelet-port={YOU_KUBELET_PORT}
--kubelet-preferred-address-types=InternalIP
--v=5
--logtostderr
3
Arslanbekov

この問題を解決するには2つの方法があります。

1)heapsterを使用する:heapsterをインストールすると、 'kubectl top nodes'をそのまま使用できます。ただし、heapsterは非推奨となっているため、おそらくメトリクスサーバーに切り替える必要があります。

2)metrics-serverを使用:残念ながら、metrics-serverをインストールするとき、そのままでは機能しない可能性があります...機能しない場合は、metrics-server-の末尾を更新する必要がありますインストールに使用したdeployment.yaml(1.8+)ファイルおよびコマンドセクションを追加正しいパラメーターを次のように指定します。

containers:
- name: metrics-server
  image: k8s.gcr.io/metrics-server-AMD64:v0.3.1
  imagePullPolicy: Always
  volumeMounts:
  - name: tmp-dir
    mountPath: /tmp

  command:
      - /metrics-server
      - --kubelet-insecure-tls
      - --kubelet-preferred-address-types=InternalIP

次に、変更を適用します。

kubectl apply -f metrics-server-deployment.yaml

あなたはそれから結果を得ることができるはずです

kubectlトップノード

そして

kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"

1
aregnier

これらの問題は、クラスターでメトリックサーバーが有効になっていないために発生します

最上位のコマンドは、メトリックサーバーがcluserにインストールされている場合にのみ実行されます

GitからKubernetes APIでメトリックサーバーをダウンロードする

ステップ:1git clone https://github.com/kubernetes-incubator/metrics-server.git

ステップ:2cd metrics-server/

ステップ:デプロイ

Kubernetes 1.7 kubectl create -f deploy/1.7/

Kubernetes 1.8

kubectl create -f deploy/1.8+/

Setp:4 Metric Serverポッドのステータスを確認します

 kubectl get po -n kube-system |grep metrics

Step5:これで最上位のコマンドが実行されます

kubectl top pod --all-namespaces
0
UDIT JOSHI

Metrics-serverのデプロイメントを編集し、そのコンテナーの引数に以下を追加します。

--kubelet-insecure-tls
--kubelet-preferred-address-types=InternalIP

例えば、

kind: Deployment
metadata:
  name: metrics-server
  ...
spec:
  template:
    spec:
      ...
      containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-AMD64:v0.3.6
        args:
          - --kubelet-insecure-tls
          - --kubelet-preferred-address-types=InternalIP
0
wizawu