본문 바로가기
  • 지요미의 IT성장일기
Kubernetes

Kubernetes - Lemit Range ??

by 지요미=P 2024. 2. 20.
728x90

Lemit Range

https://kubernetes.io/ko/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/

LimitRange를 사용하면 파드 등에 대해 CPU 메모리 리소스의 최솟값과 최대값, 기본값 등을 설정할 수 있다.
LimitRange가 네임스페이스에 제한을 주려면 네임스페이스마다 설정이 필요하다.
또 LimitRange는 신규로 파드를 생성할 때 사용되므로 기본 파드에는 영향을 주지 않는다.

 

# vi sample-limitrange-container.yaml
apiVersion: v1
kind: LimitRange
metadata:
  name: sample-limitrange-container
  namespace: jyoonchu
spec:
  limits:
  - type: Container
    default: # 컨테이너의 리소스 제한이 명시적으로 지정되지 않았을 때 사용되는 기본 제한 최대값을 정의하는 것
      memory: 500Mi
      cpu: 1000m
    defaultRequest: # 컨테이너의 리소스 제한이 명시적으로 지정되지 않았을 때 사용되는 기본 제한 최소값을 정의하는 것
      memory: 250Mi
      cpu: 250m
    # 내가 명시하고 싶으면 max,min으로 지정해주기
    max:
      memory: 500Mi
      cpu: 1000m
    min:
      memory: 250Mi
      cpu: 250m
    maxLimitRequestRatio: # 최대 CPU 및 메모리 사용량 비율을 제한하는 데 사용됩니다.
      memory: 2 # 최소/최대 요청 비율임, 아래 예제 참조
      cpu: 4

# k apply -f sample-limitrange-container.yaml

 

수동으로 입력한 부분과 같이 돌아갈 수 있도록 사용하는 기능임.

 

# vi sample-resource.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-resource
  namespace: jyoonchu
spec:
  replicas: 4
  selector:
    matchLabels:
      app: sample-app
  template:
    metadata:
      labels:
        app: sample-app
    spec:
      containers:
      - name: nginx-container
        image: nginx:1.16
#        resources:
#          requests: # 최소
#            memory: "250Mi"
#            cpu: "250m"
#          limits: # 최대
#            memory: "500Mi"

지정했던 리소스 부분 아래를 모두 주석처리로 가려주었음.

 

k get pod
k describe -n jyoonchu pod sample-resource-684ff6f4bf-ljvjb

 

 

k edit -n jyoonchu deployments.apps sample-resource
k get -n jyoonchu pod

스켈업 해보자

1->5개로 리플리카 변경

 

쿼터제한에 걸려서 4개가 생성됨

 

 

 

 

limit range보다 적게 해보자!

k delete -n jyoonchu deployments.apps sample-resource
k apply -f sample-pod.yaml

# vi sample-pod-overrequest.yaml
apiVersion: v1
kind: Pod
metadata:
  name: sample-pod-overrequest
  namespace: jyoonchu
spec:
  containers:
  - name: nginx-container
    image: 34.22.96.240:5000/nginx:latest
    resources:
      requests:
        cpu: 125m
      limits:
        cpu: 250m

# k apply -f sample-pod-overrequest.yaml

request보다 limit이 못미치는 상황임

 

응 안돼!

 

vi sample-pod-overrequest.yaml
k apply -f sample-pod-overrequest.yaml

request와 limit의 값을 맞춰줌

가능함!!

 

 

 

request와 limit의 값을 오버해보자!

vi sample-pod-overrequest.yaml
k apply -f sample-pod-overrequest.yaml

 

오류남....

 

 

# vi sample-pod-overratio.yaml
apiVersion: v1
kind: Pod
metadata:
  name: sample-pod-overratio
  namespace: jyoonchu
spec:
  containers:
  - name: nginx-container
    image: 34.22.96.240:5000/nginx:latest
    resources:
      requests:
        cpu: 125m
      limits:
        cpu: 500m

# k apply -f sample-pod-overratio.yaml

이 오류는 min값의 오류가 있어서 만들어지지 않는 것이다.

 

 

다시 수정!

# vi sample-pod-overratio.yaml

# k apply -f sample-pod-overratio.yaml

 

 

728x90

'Kubernetes' 카테고리의 다른 글

Kubernetes - 파드 스케쥴 (자동배치, 수동배치)  (0) 2024.02.20
Kubernetes - 모니터링  (0) 2024.02.20
Kubernetes - ResourceQuota관리  (0) 2024.02.20
쿠버네티스-namespace  (0) 2024.02.19
쿠버네티스-ConfigMap  (0) 2024.02.19