kubernetes中的度量服务不工作

8dtrkrch  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(2)|浏览(168)

我在aws上用ec2机器运行kubernetes,节点在Ubuntu中。
我的度量服务器版本。

wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml

components.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: metrics-server
  namespace: kube-system
  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:
      - --cert-dir=/tmp
      - --secure-port=4443
      - --kubelet-preferred-address-type=InternalIP,ExternalIP,Hostname
      - --kubelet-insecure-tls

即使在添加参数后,仍会出现错误。错误:来自服务器的错误(服务不可用):服务器当前无法处理请求(获取nodes.metrics.k8s.io)

错误:度量尚不可用
无论我等待多久,该错误都会出现。
我的kops版本:版本1.18.0(git-698 bf 974 d8)
我用网络印花布。
请帮帮我。
++我试着想https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.0/components.yaml
查看日志..
kubectl日志-n kube-系统部署/度量-服务器
“无法擦除节点”err=“GET“https://172.20.51.226:10250/stats/summary?only_cpu_and_memory=true“:错误的状态代码“401未授权””节点=“ip-172-20-51-226.ap-northeast-2.compute.internal”
“探测失败”probe=“度量存储就绪”err=“没有要提供的度量”

bweufnob

bweufnob1#

手动下载组件.yaml文件:

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

然后编辑部署下的args部分:

spec:
  containers:
  - args:
    - --cert-dir=/tmp
    - --secure-port=443
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --kubelet-use-node-status-port
    - --metric-resolution=15s

再添加两行:

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

kubelet Of 10250端口使用https协议,连接需要通过tls证书验证。添加--kubelet-unsecure-tls告诉它不验证客户端证书。
在此修改之后,只需应用清单:

kubectl apply -f components.yaml

等待一分钟,您将看到Metrics Server Pod已启动

zdwk9cvp

zdwk9cvp2#

最后一个注解很有用。你也可以直接编辑部署,并添加行“--kubelet-unsecure-tls=true”,这对我来说就足够了:
编辑部署:

$ kubectl edit deployment.apps/metrics-server -n kube-system

添加行:

- --kubelet-insecure-tls=true

类似的结果:

containers:
  - args:
    - --cert-dir=/tmp
    - --secure-port=4443
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --kubelet-use-node-status-port
    - --metric-resolution=15s
    - --kubelet-insecure-tls=true

并保存与“:wq”和享受。

~$ kubectl top pods -n kube-system
NAME                                  CPU(cores)   MEMORY(bytes)
coredns-6d4b75cb6d-k8dmc              3m           18Mi
coredns-6d4b75cb6d-wxxn6              3m           17Mi
kube-apiserver-k8s-master1            82m          306Mi
kube-apiserver-k8s-master2            65m          247Mi
kube-controller-manager-k8s-master1   32m          47Mi
kube-controller-manager-k8s-master2   4m           19Mi
kube-proxy-9dbgk                      1m           9Mi
kube-proxy-bwhdm                      1m           14Mi
kube-proxy-fz8v8                      1m           15Mi
kube-proxy-vcnrc                      1m           9Mi
kube-scheduler-k8s-master1            7m           18Mi
kube-scheduler-k8s-master2            4m           16Mi
metrics-server-79576f7ff-97tpc        6m           15Mi
metrics-server-79576f7ff-qzczp        4m           13Mi

~$ kubectl top nodes
NAME          CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
k8s-master1   318m         15%    1047Mi          55%
k8s-master2   208m         10%    1002Mi          52%
k8s-worker1   30m          3%     804Mi           42%
k8s-worker2   35m          3%     550Mi           29%

相关问题