关键词:
heapster此模块,在1.8版本以后由metricserver替代
wget https://github.com/kubernetes/heapster/archive/v1.5.4.tar.gz
tar -zxf v1.5.4.tar.gz
cd heapster-1.5.4/
kubectl create -f deploy/kube-config/rbac/heapster-rbac.yaml ##授权
kubectl create -f deploy/kube-config/standalone/heapster-controller.yaml
#####说明问题点
kubectl get pod --namespace=kube-system
kubectl logs -f pods/heapster-75c97b8594-qgs5v -n kube-system ##查看日志信息
1 reflector.go:190] k8s.io/heapster/metrics/util/util.go:30: Failed to list *v1.Node: nodes is forbidden: User "system:serviceaccount:kube-system:heapster" cannot list nodes at the cluster scope
kubectl create -f deploy/kube-config/rbac/heapster-rbac.yaml
kubectl delete -f deploy/kube-config/standalone/heapster-controller.yaml
metrics-server
metrics-server 替换heapster
生成证书:
cat > metrics-server-csr.json <<EOF
"CN": "aggregator",
"hosts": [],
"key":
"algo": "rsa",
"size": 2048
,
"names": [
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "4Paradigm"
]
EOF
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes metrics-server-csr.json | cfssljson -bare metrics-server
kube-apiserver增加配置,打开相关配置
--requestheader-allowed-names=aggregator --requestheader-client-ca-file=/etc/kubernetes/ssl/ca.pem --requestheader-allowed-names=aggregator --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --proxy-client-cert-file=/etc/kubernetes/ssl/metrics-server.pem --proxy-client-key-file=/etc/kubernetes/ssl/metrics-server-key.pem --enable-aggregator-routing=true
--advertise-address:apiserver 对外通告的 IP(kubernetes 服务后端节点 IP);
--default--toleration-seconds:设置节点异常相关的阈值;
--max--requests-inflight:请求相关的最大阈值;
--etcd-:访问 etcd 的证书和 etcd 服务器地址;
--experimental-encryption-provider-config:指定用于加密 etcd 中 secret 的配置;
--bind-address: https 监听的 IP,不能为 127.0.0.1,否则外界不能访问它的安全端口 6443;
--secret-port:https 监听端口;
--insecure-port=0:关闭监听 http 非安全端口(8080);
--tls--file:指定 apiserver 使用的证书、私钥和 CA 文件;
--audit-:配置审计策略和审计日志文件相关的参数;
--client-ca-file:验证 client (kue-controller-manager、kube-scheduler、kubelet、kube-proxy 等)请求所带的证书;
--enable-bootstrap-token-auth:启用 kubelet bootstrap 的 token 认证;
--requestheader-:kube-apiserver 的 aggregator layer 相关的配置参数,proxy-client & HPA 需要使用;
--requestheader-client-ca-file:用于签名 --proxy-client-cert-file 和 --proxy-client-key-file 指定的证书;在启用了 metric aggregator 时使用;
--requestheader-allowed-names:不能为空,值为逗号分割的 --proxy-client-cert-file 证书的 CN 名称,这里设置为 "aggregator";
--service-account-key-file:签名 ServiceAccount Token 的公钥文件,kube-controller-manager 的 --service-account-private-key-file 指定私钥文件,两者配对使用;
--runtime-config=api/all=true: 启用所有版本的 APIs,如 autoscaling/v2alpha1;
--authorization-mode=Node,RBAC、--anonymous-auth=false: 开启 Node 和 RBAC 授权模式,拒绝未授权的请求;
--enable-admission-plugins:启用一些默认关闭的 plugins;
--allow-privileged:运行执行 privileged 权限的容器;
--apiserver-count=3:指定 apiserver 实例的数量;
--event-ttl:指定 events 的保存时间;
--kubelet-:如果指定,则使用 https 访问 kubelet APIs;需要为证书对应的用户(上面 kubernetes.pem 证书的用户为 kubernetes) 用户定义 RBAC 规则,否则访问 kubelet API 时提示未授权;
--proxy-client-*:apiserver 访问 metrics-server 使用的证书;
--service-cluster-ip-range: 指定 Service Cluster IP 地址段;
--service-node-port-range: 指定 NodePort 的端口范围;
kube-apiserver 的 --requestheader-allowed-names 参数需要与metric证书CN字段一致,否则后续访问 metrics 时会提示权限不足。
如果 kube-apiserver 机器没有运行 kube-proxy,则还需要添加 --enable-aggregator-routing=true 参数;
关于 --requestheader-XXX 相关参数,参考:
https://github.com/kubernetes-incubator/apiserver-builder/blob/master/docs/concepts
https://docs.bitnami.com/kubernetes/how-to/configure-autoscaling-custom-metrics/
注意:
requestheader-client-ca-file 指定的 CA 证书,必须具有 client auth and server auth;
如果 --requestheader-allowed-names 为空,或者 --proxy-client-cert-file 证书的 CN 名称不在 allowed-names 中,则后续查看 node 或 pods 的 metrics 失败,提示:
###### Error from server (Forbidden): nodes.metrics.k8s.io is forbidden..
kube-controller-manager增加如下参数
--horizontal-pod-autoscaler-use-rest-clients=true
部署:
git clone https://github.com/kubernetes-incubator/metrics-server
cd metrics-server/deploy/1.8+/
修改metrics-server-deployment.yaml
imagePullPolicy: Always
command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
# cat resource-reader.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:metrics-server
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- nodes/stats
- namespaces
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system:metrics-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
kubectl apply -f .
参考链接:
https://blog.51cto.com/blief/2416018
https://www.orchome.com/1203
https://www.jianshu.com/p/a89e1ee3d45e
https://blog.51cto.com/ylw6006/2114338
https://www.jianshu.com/p/d017fc44959e
k8s安装之kube-state-metrics.yaml(代码片段)
概述已经有了cadvisor、heapster、metric-server,几乎容器运行的所有指标都能拿到,但是下面这种情况却无能为力:我调度了多少个replicas?现在可用的有几个?多少个Pod是running/stopped/terminated状态?Pod重启了多少次?我有多少job在运... 查看详情
k8s安装之eventrouter.yaml(代码片段)
k8s的heapster项目中止以后,事件收集的项目,就推荐使用https://github.com/heptiolabs/eventrouter项目了EventrouterThisrepositorycontainsasimpleeventrouterforthe Kubernetes project.Theeventrouterservesasanactivewatcher 查看详情
k8s监控组件heapster安装部署
k8s监控组件heapster安装部署参考文档https://github.com/kubernetes/heapster/tree/master/deployk8s集群安装部署http://jerrymin.blog.51cto.com/3002256/1898243 k8s集群RC、SVC、POD部署http://jerrymin.blog.51cto.com/3002256/190 查看详情
heapster安装(k8s1.11以后废弃了)
HeapSterInfluxDB(持久存储)Grafana展示InfluxDB的数据(类似kibana)#安装InfluxDB#githubhttps://github.com/kubernetes-retired/heapster#下载文件wgethttps://raw.githubusercontent.com/kubernetes-retired/heapster/master/deploy/kube-config/influxdb/influxdb.yaml#导入kubectlapply-finflux... 查看详情
k8s插件heapster(代码片段)
部署heapster组件[[email protected]monitor]#catheapster.yamlapiVersion:v1kind:ServiceAccountmetadata: name:heapster namespace:kube-system---kind:ClusterRoleBindingapiVersion:rbac.authorizati 查看详情
基于kubernetesv1.14.0之heapster与influxdb部署(代码片段)
1、部署准备说明:所有的容器组都运行在kube-system命名空间github项目地址https://github.com/kubernetes-retired/heapster.gitmkdirheapstergitclonehttps://github.com/kubernetes-retired/heapster.gitcdheapster/deploy/kube-config/influ 查看详情
k8s群集之动态扩缩容——hpa(代码片段)
...pod的副本数量。若要实现自动扩缩容的功能,还需要部署heapster服务,用来收集及统计资源的利用率,支持kubectltop命令,heapster服务集成在prometheus(普罗米修斯)MertricServer服务中,所以说,为了方便,我这里基于prometheus服务的... 查看详情
k8s集群监控(代码片段)
部署metricskubernetes早期版本依靠Heapster来实现完整的性能数据采集和监控功能,k8s在1.8版本开始,性能数据开始以MetricsAPI的方式提供标准化接口,并且从1.10版本开始讲Heapster替换为MetricsServer,在新版本的Metrics当中可以对Node,Pod... 查看详情
kubernetes(k8s)之资源监控(代码片段)
...-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的Metrics主要来自于kubelet内置的cAdvisor服务,有了Metrics-Server之后,用户就可以通过标准的Ku 查看详情
云原生之kubernetes实战在k8s集群下helm工具的安装与使用
【云原生之kubernetes实战】在k8s集群下helm工具的安装与使用一、helm工具介绍1.helm简介2.helm的基本特性3.helm的组件二、helm-V3特点1.Helm工作示意图2.helmV3新增特性3.helm与k8s对应支持的版本三、helm的二进制安装1.下载二进制包2.解压压... 查看详情
13安装heapster(代码片段)
先看效果: 像这样的富文本编辑器,在我们做后台管理项目的时候经常遇到,本文章展示一种可以实现此效果的方法;首先在GitHub上搜索 vue-quil-editor 去GitHub;1.install 安装插件npminstallvue-quill-editor--save#ory... 查看详情
k8s集群安装部署之网络拓扑图(代码片段)
....主机分别为:10.3.153.211(test-master)与10.3.153.212(test-standby)2.安装应用:nginx、keepalived、etcd3.应用服务作用:nginx:提供四层与七层的服务代理转发,分别对两台apiserver6443端口进行转发。keepalived:保证两台Proxy服务器的NGINX服务高可... 查看详情
11-部署heapster插件(代码片段)
配置和安装Heapster到heapsterrelease页面下载最新版本的heapster。$wgethttps://github.com/kubernetes/heapster/archive/v1.3.0.zip$unzipv1.3.0.zip$mvv1.3.0.zipheapster-1.3.0文件目录:heapster-1.3.0/deploy/kube-config/influxdb$ 查看详情
k8s入门系列之集群安装篇(代码片段)
...请阅读上一篇文章《k8s入门系列之介绍篇》Kubernetes集群安装部署•Kubernetes集群组件: -etcd一个高可用的K/V键值对存储和服务发现系统 -flannel实现夸主机的容器网络的通信 -kube-apiserver提供kubernetes集群的API调用 -kub... 查看详情
k8s实战--edusoho平台创建(代码片段)
...删除NodeKubernetesDashboard1.8.3部署k8s原生的集群监控方案(Heapster+InfluxDB+Grafana)项目地址k8s-edusoho平台创建镜像下载如上面的项目地址无法使用,请使用下面链接下载相应镜像dockerpullwutengfe 查看详情
k8s存储之pv与pvc(代码片段)
目录前言一、k8s容器磁盘二、emptyDir存储卷三、PV和PVC静态配置PV步骤总结前言K8S存储是通过卷:Volumndocker目录结构:bootfsrootfs镜像一、k8s容器磁盘容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应... 查看详情
k8s存储之pv与pvc(代码片段)
目录前言一、k8s容器磁盘二、emptyDir存储卷三、PV和PVC静态配置PV步骤总结前言K8S存储是通过卷:Volumndocker目录结构:bootfsrootfs镜像一、k8s容器磁盘容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应... 查看详情
k8s二进制部署之node安装docker(代码片段)
...。当然,如果公司允许连接互联网,可以同过yum安装,这种方式执行一条命令 查看详情