欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-24 22:45:57
友情提醒:#不要把启动文件中例如的--authentication-token-webhook=true# 自作聪明的改为--authentication-token-webhook true# 不然...

友情提醒:

#不要把启动文件中例如的
--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个)

项目地址:

配置文件有两种,单机版和集群版获取方式:
(单机)
(集群)
集群版可以自动扩容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 二进制部署内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!