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安装 用于显示节点的资源使用情况–CPU/Memory/Storage: $ kubectl top nodes
我们可以对pods做同样的事情–显示默认名称空间中所有pods的指标: $ kubectl top pods
更多命令选项检查: kubectl top pod --help kubectl top node --help
相关主题
|