云网牛站
所在位置:首页 > Linux云服务器 > 将Metrics Server部署到Kubernetes集群

将Metrics Server部署到Kubernetes集群

2020-01-09 15:40:59作者:叶云稿源:云网牛站

Kubernetes Metrics Server是资源使用情况数据的群集范围内的聚合器,它的工作是从Summary API收集指标,该指标由Kubelet在每个节点上公开,在对怪异的资源利用率进行故障排除时,诸如容器CPU和内存使用率之类的资源使用率指标将很有帮助,所有这些指标都可以通过Metrics API在Kubernetes中使用。Metrics API具有给定节点或给定Pod当前使用的资源量,由于它不存储指标值,因此Metrics Server用于此目的,提供了部署yamls文件以用于在Metrics Server项目源代码中进行安装。

从Github下载项目源代码:

git clone https://github.com/kubernetes-sigs/metrics-server.git

导航到项目文件夹:

cd metrics-server

 

设置Flags

Metrics Server支持所有标准的Kubernetes API服务器Flags以及标准的Kubernetes glog日志记录Flags,最常用的是:

--logtostderr:登录到标准错误,而不是容器中的文件,您通常希望启用此功能。

--v=<X>:设置日志详细程度,除非遇到错误,否则通常最好运行日志级别1或2,在日志级别10,将报告大量诊断信息,包括API请求和响应正文以及Kubelet的原始度量结果。

--secure-port=<port>:设置安全端口,如果您不是以root用户身份运行,则需要将此设置为默认值(端口443)以外的其他值。

--tls-cert-file, --tls-private-key-file:提供中的证书和密钥文件,如果未指定,将生成自签名证书,在生产中使用非自签名证书。

--kubelet-certificate-authority:用于验证Kubelet的服务证书的CA证书的路径。

更改Metrics Server行为的其他Flags是:

--metric-resolution=<duration>:从Kubelet刮取指标的时间间隔(默认为60s)。

--kubelet-insecure-tls:跳过验证Kubelet CA证书。

--kubelet-port:用于连接到Kubelet的端口(默认为默认的安全Kubelet端口10250)。

--kubelet-preferred-address-types:连接到Kubelet时要考虑Kubelet节点地址类型。

 

指定节点地址类型的顺序

我将修改部署清单文件,以添加在连接到Kubelet时考虑不同Kubelet节点地址类型的顺序:

vim deploy/1.8+/metrics-server-deployment.yaml

修改如下:

...............

containers:

- name: metrics-server

image: k8s.gcr.io/metrics-server-amd64:v0.3.6

args:

- --cert-dir=/tmp

- --secure-port=4443

- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname

 

禁用不安全的CA证书验证

如果您使用的是自签名证书,则可以使用–kubelet-insecure-tls标志跳过对Kubelet CA证书的验证:

...............

containers:

- name: metrics-server

image: k8s.gcr.io/metrics-server-amd64:v0.3.6

args:

- --cert-dir=/tmp

- --secure-port=4443

- --kubelet-insecure-tls

- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname

 

将Metrics Server部署到Kubernetes

进行所需的自定义后,通过从该存储库的顶级目录运行以下命令,在Kubernetes集群中部署metrics-server。

如果您有多个Kubernetes集群,请切换到正确的集群:安装及使用kubectl、kubectx和kubens轻松管理多个Kubernetes集群

运行命令:

$ kubectl apply -f deploy/1.8+/

clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created

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

deployment.apps/metrics-server created

service/metrics-server created

clusterrole.rbac.authorization.k8s.io/system:metrics-server created

clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created

检查部署,pod和服务状态:

$ kubectl get deployments metrics-server -n kube-system

$ kubectl get pods  -A | grep  metrics-server

$ kubectl get svc metrics-server -n kube-system

将Metrics Server部署到Kubernetes集群

 

测试Metrics server安装

用于显示节点的资源使用情况–CPU/Memory/Storage:

$ kubectl top nodes

将Metrics Server部署到Kubernetes集群

我们可以对pods做同样的事情–显示默认名称空间中所有pods的指标:

$ kubectl top pods

将Metrics Server部署到Kubernetes集群

更多命令选项检查:

kubectl top pod --help

kubectl top node --help

 
相关主题
精选文章
热门文章