K8S 바이너리 배포 K8S(1.15) 배포 hpa 기능

5884 단어 k8s1.152진배치
우정 알림:

# 
--authentication-token-webhook=true
#  
--authentication-token-webhook true
#  。。。。。

1. 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/

2. 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의aggregatorlayer 관련 설정 매개 변수입니다.metrics-server & HPA는 사용해야 합니다.--requestheader-client-ca-file :
--proxy-client-cert-file와 --proxy-client-key-file에서 지정한 인증서(ca 인증서)에 서명하기 위해 metricaggregator를 사용할 때 사용합니다.
주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

3. kubelet 매개 변수 수정 및 재시작


vim /opt/kubernetes/server/bin/kubelet.sh
# :
  --authentication-token-webhook=true \
 :--read-only-port=0, 

# :
supervisorctl restart kube-kubelet

4. 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 .

5. 결과 검증


[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 2진법 배치에 관한 K8S(1.15)의 hpa 배치 기능에 관한 이 글은 여기에 소개되었습니다. 더 많은 k8s 1.15 2진법 배치 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기