标签:reader 进制 条件 account rom could not 使用 can policy
作者:李毓在正常 情况下,控制台输入kubectl top pods 命令,会返回如下提示:
[root@adm-master ~]# kubectl top pods
Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)
这是因为还缺少个组件,这个组件叫做metric-server。
这是一个K8S的资源监控工具,监控CPU和内存的使用情况。他是一款必须安装的组件,因为有其他许多组件依赖他,比如HPA,scheduler,kubectl top
下面我们来安装:
在这里下载最新的版本
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server
[root@adm-master ~]# kubectl apply -f metrics-server-latest/
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
configmap/metrics-server-config created
deployment.apps/metrics-server-v0.3.6 created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
然后你会发现,仍然提示刚才的错误。
其实,官网已经提示了,metric-server安装要满足2个条件
1、在master节点要能访问metrics server pod ip(kubeadm部署默认已经满足该条件,二进制部署需注意要在master节点也部署node组件)
2、apiserver启用聚合层支持(kubeadm默认已经启用,二进制部署需自己启用)
yaml里增加两个参数:跳过证书验证和使用node ip通信
在deployment.yaml 修改配置:
- name: metrics-server
image: liyu/metrics-server-amd64:v0.3.1
imagePullPolicy: IfNotPresent
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
kubectl apply -f 之后仍然提示之前的错误。
我们再看一下api 的日志
E0817 14:43:50.033248 1 available_controller.go:420] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.1.194.67:443/apis/metrics.k8s.io/v1beta1: Get https://10.1.194.67:443/apis/metrics.k8s.io/v1beta1: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
我们在/etc/kubernetes/manifests里面改一下apiserver的配置
加上
注意:这个是k8s在1.7的新特性,如果是1.16版本的可以不用添加,1.17以后要添加。这个参数的作用是Aggregation允许在不修改Kubernetes核心代码的同时扩展Kubernetes API。
--enable-aggregator-routing=true
重新应用一下
kubectl apply -f kube-apiserver.yaml
大功告成
标签:reader 进制 条件 account rom could not 使用 can policy
原文地址:https://blog.51cto.com/14783669/2521158