클라우드 엔지니어/클라우드 캠프과정

쿠버네티스(Kubernetes labels QoS)

해아's 2022. 10. 14. 13:05

[2] 레이블 적용

pod에는 레이블을 지정할수 있다.

레이블 단위로 파드들을 묶어서 서비스를 등록하거 이것저것할수 있다.

예제

레이블 type : web인 녀석만 서비스로 묶어보자

apiVersion: v1
kind: Service
metadata:
  name: svc2
spec:
  selector:
    type: web
  ports:
    - port: 8000

[3] 노드 스케줄러

Pod 생성
apiVersion: v1
kind: Pod
metadata:
  name: pod-3
spec:
  nodeSelector:
    kubernetes.io/hostname: 노드이름
  containers:
  - name: container
    image: 이미지이름
    
    
    
apiVersion: v1
kind: Pod
metadata:
  name: hello-pod-05
spec:
  nodeSelecter:
    kubernetes.io/hostname: node1
  containers:
  - name: hello-container1
    image: yoskr/yos_node:0.1
    ports:
      - containerPort: 8000

노드별로 사양이 다르므로 특정 노드에 지정해서 셋팅하게 하는것이다.

그 노드에 자원이 부족할경우 실행을 하지않는다.

 

[4] QoS

쿠버네티스는 QoS지원한다.

각 파드에 자원을 할당 제한 등등..

K8s에서 resource request와 limit은 컨테이너에 할당 되는 CPU와 Memory 자원량을 의미
	CPU는 Milicore단위(1,000 Milicore = 1Core)로 Memory는 Mbyte단위로 할당

	request량은 k8s의 Pod 스케쥴링의 기준, request량은 Pod의 모든 컨테이너 request량을 합친 값이 된다.
	Pod 스케쥴링이란 Pod를 어떤 노드에 배치하는가를 결정하는 과정으로 k8s는 Round-Robin방식으로 수행
	즉, 첫 번째 노드가 요청되는 Pod request량을 수용 할 자원을 가지고 있다면 배치(생성)를 하고 
	만약 그렇지 않다면 다음 차례의 노드에 대해 동일한 작업을 수행하는 방식
	만약 모든 노드가 Pod request량을 수용 할 수 없으면 Pod는 Pending상태로 되며 Pod 스케쥴링을 할 수 없다는 Event가 발생

	limit량은 Pod가 사용하는 자원을 제한
	Pod가 limit량을 초과 하게 되면 오버커밋 상태가 된다.

	Request와 Limit량 산정의정답은 없음
	권장하는 것은 request는 평균 사용량+10%로 limit은 Peek 사용량 중 최대 사용량을(비 정상 Peek 제외) 기준으로 설정하는 것을 권장


      0] QoS 사용 방법
	QoS 확인 방법 kubectl describe Pod nginx-guaranteed | grep QoS

	resources 사용 방법

limit  > pod 사용량 제한

request >필요 요청 메모리 용량 요청하는거

컨테이너별로 request 용량을 지정할수 있다.

 

 

 

1] BestEffort
	resources 항목을 아예 사용하지 않을 경우 BestEffort로 분류
	limit을 설정하지 않았기 때문에 노드에 유휴 자원이 존재한다면 제한 없이 모든 자원을 사용
	request를 설정하지 않았기 때문에 보장받을 수 있는 자원도 없음

    
2] Guaranteed
	resources 항목에서 limits와 request의 값이 완전히 동일한 경우 Guaranteed로 분류
	request와 limit이 동일하여 자원의 오버커밋이 허용되지 않기 때문에 자원 사용을 안정적으로 보장
    
3] Burstable
	resources 항목에서 limits가 requests보다 클 경우 Burstable로 분류
    

4] 우선 순위
	Guaranteed > Burstable > BestEffort
	단, Burstable과 BestEffort 간에는 메모리의 사용량에 따라 우선순위가 바뀔 수 있다.

 

 

 

참고자료

728x90
반응형