K8S 바이너리 배포 K8S(1.15) 배포 hpa 기능
#
--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진법 배치 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[K8s] Kubernetes Pod를 다시 시작하는 방법이 경우 빠르고 쉽게 다시 시작할 수 있는 방법이 필요할 수 있습니다. 따라서 단일 포드를 다시 시작하는 간단한 방법이 없습니다. 이 문서에서 다룰 몇 가지 사용 가능한 옵션이 있습니다. ReplicaSet에서 유지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.