k8s部署metrics-server启动不了
1.在新版的K8S中,系统资源的采集均使用Metrics-Server服务,可以通过Metrics-Server服务采集节点和Pod的内存、磁盘、CPU和网络的使用率等信息。
下载地址:wget https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz
开始部署:
tar -zxvf metrics-server-0.3.6.tar.gz cd metrics-server-0.3.6/deploy/1.8+/ #文件里面的镜像是无法直接拉去的 可以先自己拉去一下官方可用的镜像 k8s.gcr.io/metrics-server-amd64:v0.3.6 crictl pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6 (docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6) #修改metrics-server-deployment文件 vim metrics-server-deployment.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
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 和 imagePullPolicy
# image: k8s.gcr.io/metrics-server-amd64:v0.3.6
image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6
imagePullPolicy: IfNotPresent
# 新增command配置
command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
volumeMounts:
- name: tmp-dir
mountPath: /tmp
# 新增resources配置
resources:
limits:
cpu: 300m
memory: 200Mi
requests:
cpu: 200m
memory: 100Mi
2.修改其实文件:
sed -i 's#rbac.authorization.k8s.io/v1beta1#rbac.authorization.k8s.io/v1#' auth-reader.yaml sed -i 's#rbac.authorization.k8s.io/v1beta1#rbac.authorization.k8s.io/v1#' auth-delegator.yaml sed -i 's#apiregistration.k8s.io/v1beta1#apiregistration.k8s.io/v1#' metrics-apiservice.yaml #如不修改可能会报错 unable to recognize "auth-delegator.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1" unable to recognize "auth-reader.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1" unable to recognize "metrics-apiservice.yaml": no matches for kind "APIService" in version "apiregistration.k8s.io/v1beta1" #报错的原因是因为资源文件的版本定义过期
3.执行命令启动
kubectl apply -f . #启动完成后就可以使用命令查看资源信息 [root@node1 1.8+]# kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% node1 127m 6% 1546Mi 54% node2 40m 4% 744Mi 39% node3 36m 3% 711Mi 37% [root@node1 1.8+]# kubectl top pod -n kube-system NAME CPU(cores) MEMORY(bytes) coredns-74586cf9b6-ffm8l 2m 18Mi coredns-74586cf9b6-j49nz 2m 19Mi etcd-node1 16m 128Mi kube-apiserver-node1 50m 429Mi kube-controller-manager-node1 16m 76Mi kube-proxy-4wvm2 3m 19Mi kube-proxy-mnmnt 6m 27Mi kube-proxy-x4ppv 3m 19Mi kube-scheduler-node1 3m 28Mi metrics-server-897d6dc87-nl8br 1m 11Mi tigera-operator-5fb55776df-zlpsj 3m 36Mi

浙公网安备 33010602011771号