[英]kubectl top node `error: metrics not available yet` . Using metrics-server as Heapster Depricated
Kubernetes 無法找到度量服務器 api。我在 MacCDD0D2B3B42 上使用 Kubernetes 和 ZC5FD2174E730D2B3B42 我試圖從以下示例中進行 HPA。 但是,當我執行命令kubectl get hpa
時,我的目標仍然未知。 然后我嘗試kubectl describe hpa
。 這給了我如下錯誤:
Name: php-apache
Namespace: default
Labels: <none>
Annotations: <none>
CreationTimestamp: Sun, 07 Oct 2018 12:36:31 -0700
Reference: Deployment/php-apache
Metrics: ( current / target )
resource cpu on pods (as a percentage of request): <unknown> / 5%
Min replicas: 1
Max replicas: 10
Conditions:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetResourceMetric the HPA was unable to compute the replica count: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedComputeMetricsReplicas 1h (x34 over 5h) horizontal-pod-autoscaler failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
Warning FailedGetResourceMetric 1m (x42 over 5h) horizontal-pod-autoscaler unable to get metrics for resource cpu: no metrics returned from resource metrics API
我正在使用 Kubernetes 文檔中建議的度量服務器。 我也嘗試過使用 Minikube 做同樣的事情。 但這也沒有用。
運行kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes
輸出:
{
"kind": "NodeMetricsList",
"apiVersion": "metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/metrics.k8s.io/v1beta1/nodes"
},
"items": []
}
解決方案(如果使用 Minikube):
將 Kubernetes 的上下文更改為 Minikube 。
在 minikube 中啟用 metrics-server 和 Disabled heapster。
minikube addons disable heapster
minikube addons enable metrics-server
使用以下步驟在集群中部署 metrics-server:
git clone https://github.com/kubernetes-incubator/metrics-server.git
cd metrics-server
kubectl create -f deploy/1.7/
(如果 Kubernetes 1.7 版)
或者
kubectl create -f deploy/1.8+/
(如果 Kubernetes 版本 1.8+)
啟動minikube dashboad
和minikube service [your service]
。
試試kubectl top node
。
我發現這個( https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ )資源很有幫助。
運行此命令以創建metrics-server
:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.2/components.yaml
然后再試一次這個命令
kubectl top nodes
你可以得到結果:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
我知道這是一個遲到的答案,但我自己在 Docker Kubernetes 和 Autoscaler 方面遇到了一些問題,但沒有在互聯網上找到好的答案。 經過多天的調試,我發現metrics-server
存在一些連接問題(無法連接到 pod)。
我關閉了metrics-server
TLS 並開始工作..如果其他人遇到同樣的問題,我在這里回答了我自己的帖子:
在集群中使用以下命令來設置 Metrics Server:
kubectl apply -f https://raw.githubusercontent.com/pythianarora/total-practice/master/sample-kubernetes-code/metrics-server.yaml
這應該工作得很好。
我在指標服務器中關閉了 TLS,之后它開始工作,所以我更新了 YAML 並重新發布。
使用 minikube 1.4.0 時,除了minikube start
之外無需執行任何其他minikube start
: kubectl top node/pod
應該開箱即用。
確保您在 Kubernetes 集群上使用最新的 metrics-server。 下面的命令幫助了我。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
問題是證書,更新您下載的 yaml 部署部分以安裝 metrics-server,
在文件中添加這部分: --kubelet-insecure-tls
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server/metrics-server:v0.3.7
imagePullPolicy: IfNotPresent
args:
- --kubelet-insecure-tls
apiVersion: apps/v1 kind: Deployment metadata: name: metrics-server namespace: kube-system labels: k8s-app: metrics-server spec: selector: matchLabels: k8s-app: metrics-server template: metadata: name: metrics-server labels: k8s-app: metrics-server spec: serviceAccountName: metrics-server volumes: # mount in tmp so we can safely use from-scratch images and/or read-only containers - name: tmp-dir emptyDir: {} containers: - name: metrics-server image: k8s.gcr.io/metrics-server/metrics-server:v0.3.7 imagePullPolicy: IfNotPresent args: - --kubelet-insecure-tls - --cert-dir=/tmp - --secure-port=4443 ports: - name: main-port containerPort: 4443 protocol: TCP securityContext: readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000 volumeMounts: - name: tmp-dir mountPath: /tmp nodeSelector: kubernetes.io/os: linux
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.