metrics-server部署
2021-03-27 本文已影响0人
会倒立的香飘飘
介绍
Metrics Server是Kubernetes内置自动缩放管道的可扩展,高效的容器资源指标来源。
Metrics Server从Kubelet收集资源指标,并通过Metrics API在Kubernetes apiserver中公开它们, 以供Horizontal Pod Autoscaler和Vertical Pod Autoscaler使用。也可以通过访问Metrics API kubectl top
,从而更轻松地调试自动缩放管道。
Metrics Server并非用于非自动缩放目的。例如,请勿将其用于将指标转发到监视解决方案,也不要将其用作监视解决方案指标的来源。
Metrics Server提供:
- 适用于大多数集群的单个部署(请参阅需求)
- 可扩展支持多达5,000个节点集群
- 资源效率:Metrics Server使用0.5m的CPU核心,每个节点使用4 MB的内存
1,修改配置
检查 API Server 是否开启了 Aggregator Routing:查看 API Server 是否具有 --enable-aggregator-routing=true 选项。
[root@k8s-master ~]# ps -ef |grep apiserver|grep true
root 13955 13928 4 14:43 ? 00:00:18 kube-apiserver --advertise-address=10.0.0.11 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --enable-aggregator-routing=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
添加参数
[root@k8s-master ~]# grep -A 10 command /etc/kubernetes/manifests/kube-apiserver.yaml
- command:
- kube-apiserver
- --advertise-address=10.0.0.11
- --allow-privileged=true
- --authorization-mode=Node,RBAC
- --client-ca-file=/etc/kubernetes/pki/ca.crt
- --enable-admission-plugins=NodeRestriction
- --enable-bootstrap-token-auth=true
- --enable-aggregator-routing=true
- --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
- --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
kubeadm部署的在/etc/kubernetes/manifests/kube-apiserver.yaml这里修改,kubelet会监听这个yaml文件的变化修改这个文件后kubelet会将自动终止原有的 kube-apiserver的 Pod,并自动创建一个使用了新配置参数的 Pod 作为替代
2,metrics-server部署
官方下载
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
替换国内镜像源地址:
image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6
配置
根据您的群集设置,您可能还需要更改传递到Metrics Server容器的标志
--kubelet-preferred-address-types -确定连接到特定节点的地址时使用的节点地址类型的优先级(默认[主机名,内部DNS,内部IP,外部DNS,外部IP])
--kubelet-insecure-tls -不要验证Kubelets提供的服务证书的CA。仅用于测试目的。
--requestheader-client-ca-file -指定根证书捆绑包,以验证传入请求上的客户端证书。
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
部署metrics-server
kubectl apply -f components.yaml
root@master:~# kubectl get pods -n kube-system metrics-server-5f49885b47-xbxp6
NAME READY STATUS RESTARTS AGE
metrics-server-5f49885b47-xbxp6 1/1 Running 0 40m
root@master:~# kubectl top pods -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default counter 1m 2Mi
default front-end-6b7b5c4bfc-8jhfr 0m 2Mi
default front-end-6b7b5c4bfc-gv5xr 0m 2Mi
default front-end-6b7b5c4bfc-qs7tg 0m 2Mi
default front-end-6b7b5c4bfc-sxdr7 0m 2Mi
default front-end-6b7b5c4bfc-tgksv 0m 2Mi
default front-end-6b7b5c4bfc-tm9sc 0m 2Mi
default nginx 6m 23Mi
default nginx-kusc00401 0m 3Mi
ing-internal nginx 0m 3Mi
kube-system coredns-6d56c8448f-khkkh 3m 9Mi
kube-system coredns-6d56c8448f-nw4zl 2m 9Mi
kube-system etcd-master 11m 36Mi
kube-system kube-apiserver-master 22m 295Mi
kube-system kube-controller-manager-master 7m 48Mi
kube-system kube-flannel-ds-9l9gb 1m 13Mi
kube-system kube-flannel-ds-vrxft 1m 12Mi
kube-system kube-flannel-ds-w7nsw 2m 12Mi
kube-system kube-proxy-8vmp8 1m 13Mi
kube-system kube-proxy-9vs7k 1m 13Mi
kube-system kube-proxy-pprw8 1m 13Mi
kube-system kube-scheduler-master 2m 17Mi
kube-system metrics-server-5f49885b47-xbxp6 1m 12Mi
root@master:~# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 101m 2% 2244Mi 29%
node1 66m 1% 1264Mi 16%
node2 75m 1% 1284Mi 16%