K8S二进制部署的K8S(1.15)部署hpa功能
友情提醒:
#不要把启动文件中例如的
--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:
如果 --requestheader-allowed-names 不为空,则--proxy-client-cert-file 证书的 CN 必须位于 allowed-names 中,默认为 aggregator;如果 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二进制部署的K8S(1.15)部署hpa功能的文章就介绍到这了,更多相关k8s1.15 二进制部署内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341