OKD 확장과 성능을 위한 환경 구성 -1 > PaaS 자료실

본문 바로가기
사이트 내 전체검색

PaaS 자료실

OKD 확장과 성능을 위한 환경 구성 -1

페이지 정보

profile_image
작성자 PaaSHaRa
댓글 0건 조회 310회 작성일 21-06-11 11:08

본문

[클러스터를 대규모로 설치하거나 확장]

대규모 클러스터 설치 예시는 다음과 같습니다.
대규모 클러스터를 설치하거나 클러스터를 더 큰 노드 수로 확장하는 경우 클러스터를 설치하기 전에 install-config.yaml.파일에서 cidr에 따른 클러스터 네트워크를 설정해야 합니다.

networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineCIDR: 10.0.0.0/16
networkType: OpenShiftSDN
serviceNetwork:
- 172.30.0.0/16


cidr 10.128.0.0/14클러스터 크기가 노드가 500 개를 초과하면 기본 클러스터 네트워크를 사용할 수 없습니다. 500 노드를 초과하는 더 큰 노드 수를 얻으려면 10.128.0.0/12또는 10.128.0.0/10로 설정해야합니다 .





[호스트 구성]

노드 호스트 구성은 다음을 참고하시면 됩니다.
*참고 : OVN (Open Virtual Network)이 아닌 SDN (소프트웨어 정의 네트워킹)을 사용하는 OKD에 적용됩니다.

예를 들어, 두 개의 매개 변수가 Pod의 최대 수를 제어할 수 있는 것처럼 (예:podsPerCore 와 maxPods). OKD 노드 구성 파일에는 중요한 옵션이 포함되어 있습니다.

두 옵션을 모두 사용중인 경우 두 값 중 낮은 값은 노드의 Pod 수를 제한합니다. 이 값을 초과하면 다음과 같은 결과가 발생할 수 있습니다.

- CPU 사용률 증가.
- 느린 포드 스케줄링.
- 노드의 메모리 양에 따라 잠재적 인 메모리 부족 시나리오.
- IP 주소 풀 소진.
- 리소스 오버 커밋으로 인한 사용자 애플리케이션 성능의 저하.

Kubernetes에서 단일 컨테이너를 보유하는 Pod는 실제로 두 개의 컨테이너를 사용합니다. 두 번째 컨테이너는 실제 컨테이너가 시작되기 전에 네트워킹을 설정하는 데 사용됩니다. 따라서 10 개의 포드를 실행하는 시스템에는 실제로 20 개의 컨테이너가 실행됩니다.

클라우드 공급자의 디스크 IOPS 조절은 CRI-O 및 kubelet에 영향을 미칠 수 있습니다. 노드에서 실행중인 I / O 집약적 포드가 많으면 오버로드 될 수 있습니다. 노드에서 디스크 I / O를 모니터링하고 워크로드에 대한 처리량이 충분한 볼륨을 사용하는 것이 좋습니다.

podsPerCore노드의 프로세서 코어 수를 기반으로 노드가 실행할 수있는 포드 수를 설정합니다. 예를 들어 프로세서 코어가 4 개인 노드에서 podsPerCore가로 설정된 경우 10 노드에서 허용되는 최대 포드 수는 40 입니다.


kubeletConfig:
podsPerCore: 10


이 제한 podsPerCore을 0으로 설정하여 비활성화 하도록 합니다. 기본값은 0이며 podsPerCore는 maxPods 초과 할 수 없습니다.

maxPods 노드의 속성에 관계없이 노드가 실행할 수있는 포드 수를 고정 값으로 설정합니다.

kubeletConfig:
maxPods: 250







[kubelet 매개 변수를 편집하기위한 KubeletConfig CRD 생성]

kubelet 구성은 현재 Ignition 구성으로 직렬화되어 있으므로 직접 편집 할 수 있습니다. 그러나 kubelet-config-controllerMCC (Machine Config Controller)에 새로 추가 된 기능 도 있습니다 . 이를 통해 KubeletConfigkubelet 매개 변수를 편집하기 위한 커스텀 리소스 (CR) 를 생성 할 수 있습니다 .

1. 운영:

$ oc get machineconfig

선택할 수 있는 사용 가능한 컴퓨터 구성 개체 목록이 제공됩니다. 기본적으로 01-master-kubelet및 01-worker-kubelet.으로 된 두 개의 kubelet 으로 구성됩니다.


2. 노드 당 최대 포드의 현재 값을 확인하려면 다음을 실행하세요.

# oc describe node | grep Allocatable -A6

value: pods: 를 찾아야 합니다.

예)

# oc describe node ip-172-31-128-158.us-east-2.compute.internal | grep Allocatable -A6


예시)
Allocatable:
attachable-volumes-aws-ebs: 25
cpu: 3500m
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 15341844Ki
pods: 250



3. 작업자 노드에서 노드 당 최대 포드를 설정하려면 kubelet 구성이 포함 된 사용자 지정 리소스 파일을 만듭니다. 예를 들면 change-maxPods-cr.yaml 과 같습니다.
apiVersion: machineconfiguration.openshift.io/v1
kind: KubeletConfig
metadata:
name: set-max-pods
spec:
machineConfigPoolSelector:
matchLabels:
custom-kubelet: large-pods
kubeletConfig:
maxPods: 500


kubelet이 API 서버와 통신하는 속도는 초당 쿼리 (QPS) 및 버스트 값에 따라 다릅니다. 50for kubeAPIQPS및 100for 의 기본값 kubeAPIBurst은 각 노드에서 실행되는 제한된 포드가있는 경우 충분합니다. 노드에 충분한 CPU 및 메모리 리소스가 있는 경우 kubelet QPS 및 버스트 속도를 업데이트하는 것이 좋습니다.

apiVersion: machineconfiguration.openshift.io/v1
kind: KubeletConfig
metadata:
name: set-max-pods
spec:
machineConfigPoolSelector:
matchLabels:
custom-kubelet: large-pods
kubeletConfig:
maxPods:
kubeAPIBurst:
kubeAPIQPS:

a.운영
$ oc create -f change-maxPods-cr.yaml

b.운영
$ oc get kubeletconfig

클러스터의 작업자 노드 수에 따라 작업자 노드가 하나씩 재부팅 될 때까지 기다리십시오. 작업자 노드가 3 개인 클러스터의 경우 약 10 ~ 15 분이 소요될 수 있습니다.



4. maxPods작업자 노드 변경을 확인하십시오 .
$ oc describe node
a.다음을 실행하여 변경 사항을 확인하십시오.
$ oc get kubeletconfigs set-max-pods -o yaml

첨부파일

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : (주)리눅스데이타시스템 / 대표 : 정정모
서울본사 : 서울특별시 강남구 봉은사로 114길 40 홍선빌딩 2층 / tel : 02-6207-1160
대전지사 : 대전광역시 유성구 노은로174 도원프라자 5층 / tel : 042-331-1161

접속자집계

오늘
467
어제
331
최대
680
전체
82,212
Copyright © www.linuxdata.org All rights reserved.