K8S(17)二进制部署的K8S(1.15)部署hpa功能

零、参考文件:

参考01:https://www.cnblogs.com/tchua/p/10855001.html

参考02:https://blog.csdn.net/jthello123/article/details/105468136

参考03:http://blog.leanote.com/post/criss/k8s-metrics-server-2+

友情提醒:

#不要把启动文件中例如的
--authentication-token-webhook=true
# 自作聪明的改为
--authentication-token-webhook true
# 不然。。。。。

一、生成metrics-proxy证书

在管理机上生成证书配置文件及证书

# metrics-proxy证书请求
cat >metrics-proxy-csr.json <<'EOF'
{
"CN": "aggregator",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "beiJing",
"L": "beiJing",
"O": "zq",
"OU": "ops"
}
]
}
EOF #生成mertic证书
cfssl gencert \
-ca=ca.pem \
-ca-key=ca-key.pem \
-config=ca-config.json \
-profile=peer \
metrics-proxy-csr.json | cfssl-json -bare metrics-proxy #分发证书到master节点
# profile=peer 中的peer,依据自己的配置改,反正需要有server端和client的证书权限
#略,目录在 /opt/kubernetes/server/bin/cert/

二、修改apiserver启动配置

修改apiserver启动脚本,添加以下参数:

vim /opt/kubernetes/server/bin/kube-apiserver.sh 

  --requestheader-allowed-names "" \
--requestheader-extra-headers-prefix X-Remote-Extra- \
--requestheader-group-headers X-Remote-Group \
--requestheader-username-headers X-Remote-User \
--proxy-client-cert-file ./cert/metrics-proxy.pem \
--proxy-client-key-file ./cert/metrics-proxy-key.pem \

参数说明:

  • --requestheader-XXX --proxy-client-XXX

    是 kube-apiserver 的 aggregator layer 相关的配置参数,metrics-server & HPA 需要使用;

  • --requestheader-client-ca-file

    用于签名 --proxy-client-cert-file 和 --proxy-client-key-file 指定的证书(ca证书),在启用了 metric aggregator 时使用;

注1:

  1. 如果 --requestheader-allowed-names 不为空,则--proxy-client-cert-file 证书的 CN 必须位于 allowed-names 中,默认为 aggregator;
  2. 如果 kube-apiserver 机器没有运行 kube-proxy,则还需要添加 --enable-aggregator-routing=true 参数

重启apiserver

supervisorctl restart kube-apiserver

三、kubelet参数修改并重启

vim /opt/kubernetes/server/bin/kubelet.sh
#添加参数:
--authentication-token-webhook=true \
如果有参数:--read-only-port=0,则需删除 #重启服务:
supervisorctl restart kube-kubelet

四、下载metrics-server镜像及配置清单

A 获取配置清单(6个)

项目地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server

配置文件有两种,单机版和集群版获取方式:

https://github.com/kubernetes-incubator/metrics-server (单机)

https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server (集群)

集群版可以自动扩容metrics自己,推荐使用

# 创建目录
mkdir -p /data/k8s-yaml/metrics/
cd /data/k8s-yaml/metrics/ # 下载配置文件
metrics_url='https://raw.githubusercontent.com/kubernetes/kubernetes/v1.14.1/cluster/addons/metrics-server'
wget $metrics_url/auth-delegator.yaml
wget $metrics_url/auth-reader.yaml
wget $metrics_url/metrics-apiservice.yaml
wget $metrics_url/metrics-server-deployment.yaml
wget $metrics_url/metrics-server-service.yaml
wget $metrics_url/resource-reader.yaml

B 修改启动参数

## 修改metrics-server-deployment.yaml
###1 mertics-server部分修改启动参数镜像地址
containers:
- name: metrics-server
image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.1
command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP ###2 metrics-server-nanny部分修改镜像地址及启动参数
......
- name: metrics-server-nanny
image: registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer:1.8.4
.....
command:
- /pod_nanny
- --config-dir=/etc/config
- --cpu=100m
- --extra-cpu=0.5m
- --memory=100Mi
- --extra-memory=50Mi
- --threshold=5
- --deployment=metrics-server-v0.3.1
- --container=metrics-server
- --poll-period=300000
- --estimator=exponential ### 在新的版本中,授权文内没有 node/stats 的权限,需要手动去添加resource-reader.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:metrics-server
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- nodes/stats ## 添加此参数
- namespaces

mertics-server镜像参数解释:

  • --kubelet-insecure-tls:

    不验证客户端证书

  • --kubelet-preferred-address-types

    metrics-server连节点时默认是连接节点的主机名,但是coredns里面没有物理机主机名的解析,需要加个参数,让它连接节点的IP

C 应用配置清单并验证

kubectl apply -f .

五、结果验证

[root@mmkt-api01 ~]# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
xx01.host.com 411m 2% 36881Mi 57%
xx02.host.com 509m 3% 33127Mi 51%

K8S(17)二进制的1.15版本部署hpa自动伸缩的更多相关文章

  1. Kubernetes学习之路(27)之k8s 1.15.2 部署

    目录 一.环境准备 二.软件安装 三.部署master节点 四.部署node节点 五.集群状态检测 一.环境准备 IP地址 节点角色 CPU Memory Hostname Docker versio ...

  2. k8s 1.15.2 部署

    目录 一.环境准备 二.软件安装 三.部署master节点 四.部署node节点 五.集群状态检测 一.环境准备 IP地址 节点角色 CPU Memory Hostname Docker versio ...

  3. Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行

    Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我的CDH5.15.1集群中,默 ...

  4. 云原生生态周报 Vol.9| K8s v1.15 版本发布

    本周作者 | 衷源.心贵 业界要闻 1.Kubernetes Release v1.15 版本发布,新版本的两个主题是持续性改进和可扩展性.(https://github.com/kubernetes ...

  5. ceph mimic版本 部署安装

    ceph 寻址过程 1. file --- object映射, 把file分割成N个相同的对象 2. object - PG 映射, 利用静态hash得到objectID的伪随机值,在 "位 ...

  6. JIRA 6.3.6版本部署

    JIRA 6.3.6版本部署 部署环境:Ubuntu Server .JDK1.7 JIRA文件:atlassian-jira-6.3.6.tar.gz 下载地址:百度云网盘地址http://pan. ...

  7. 关于8.0.15版本的mysql下载与安装

    下载MYSQL 官网下载MYSQL8.0.15版本,链接地址https://www.mysql.com/downloads/,流程如下 点击进入后,网页滑到最下面,根据自己电脑的型号下载相应的版本 安 ...

  8. Datatables插件1.10.15版本服务器处理模式ajax获取分页数据实例解析

    一.问题描述 前端需要使用表格来展示数据,找了一些插件,最后确定使用dataTables组件来做. 后端的分页接口已经写好了,不能修改.接口需要传入页码(pageNumber)和页面显示数据条数(pa ...

  9. MySQL安装 8.0.15版本

    windows下MySQL 8.0.15的安装和设置 MySQL下载地址:https://dev.mysql.com/downloads/mysql/ 我的百度网盘下载(win64位):链接:http ...

随机推荐

  1. JS数组的常用属性或方法

    1.length 数组长度 计算数组的长度 var arr=[1,2,3,4,5]; console.log(arr.length);//输出结果是5 2. push() 添加元素 向数组尾部添加新元 ...

  2. 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐

     深入理解字节,字节序与字节对齐 一 总述 作为一个职业的coder玩家,首先应该对计算机的字节有所了解. 我们经常谈到的2进制流,字节(字符)流,数据类型流(针对编程),结构流等说法,2进制流,0和 ...

  3. 设置ViewPager 自动滑动时间,速度 方便展示动画

    ViewPager.setCurrentItem(position),即使已设置动画,但是没有动画效果 原因:因为ViewPager滑动之前的时间间隔太短,可以通过反射,去修改ViewPager自动滑 ...

  4. nginx反向代理、负载均衡以及分布式下的session保持

    [前言]部署服务器用到了nginx,相比较于apache并发能力更强,优点也比其多得多.虽然我的项目可能用不到这么多性能,还是部署一个流行的服务器吧! 此篇博文主要学习nginx(ingine x)的 ...

  5. 微信小程序切换标签改变样式

    微信小程序切换标签改变样式 wxml <!--顶部导航栏--> <view class="swiper-tab"> <view class=" ...

  6. 剑指 Offer 41. 数据流中的中位数 + 堆 + 优先队列

    剑指 Offer 41. 数据流中的中位数 Offer_41 题目详情 题解分析 本题使用大根堆和小根堆来解决这个寻找中位数和插入中位数的问题. 其实本题最直接的方法是先对数组进行排序,然后取中位数. ...

  7. PAT-1102(Invert a Binary Tree)+二叉树的镜像+层次遍历+中序遍历+已知树的结构构树

    Invert a Binary Tree pat-1102 import java.util.Arrays; import java.util.Queue; import java.util.Scan ...

  8. bjd_ctf

    1.抓包修改 ​ 提示修改id,postman修改headers里面的id 分析得到id是admin加admin的base64编码,payload为id: adminYWRtaW4= 请求后又提示请使 ...

  9. jQuery学习笔记(2) jQuery选择器

     jQuery的选择器完全继承了CSS的风格,利用jQuery选择器,可以非常便捷和快速地找出特定的DOM元素,然后为它们添加相应的行为. 目录 目录 CSS选择器 jQuery选择器 jQuery选 ...

  10. Linux入门视频笔记二(Shell)

    一.Shell脚本编程基础 1.简单地理解是脚本就是一堆的Linux命令或其他命令,把他们写到一起,打包成一个文件就是脚本,Shell脚本一般以.sh后缀结尾 2.sh text.sh:运行text. ...