본문 바로가기

⭐ Kubernetes & EKS/리소스 제한

시스템 리소스 허용과 제한 설정

728x90
반응형

# 시스템 리소스 요구사항 설정

# 쿠버네티스 사이트 에서 소스 검색하기 > resources 

kubectl run nginx --image=nginx --port=80 --dry-run -o yaml > nginx-deploy.yaml

vim nginx-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      run: nginx
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        ports:
        - containerPort: 80
        resources: 
          requests:
            memory: "200Mi"
            cpu: "1m"
          limits:
            memory: "400Mi"
            cpu: "2m"
status: {}
kubectl create -f nginx-deploy.yaml

kubectl get pod

kubectl get pod nginx-7b47bbb85b-xtw26 -o yaml

- 여기서 확인해보면 리소스가 할당된 내용을 확인 할 수 있다.

# 시스템 리소스 제한정책 설정

- 리미트레인지 컨테이너 실습

# LimitRange 옵션 설정하기

sudo vim /etc/kubernetes/manifests/kube-apiserver.yaml

- NodeRestriction 옆에 LimitRanger 를 입력한다.

# 쿠버네티스 공식사이트 에서 Limit Ranges 검색하기

# 네임스페이스 생성하기

kubectl create namespace limitrange-demo

kubectl create -f https://k8s.io/examples/admin/resource/limit-mem-cpu-container.yaml -n limitrange-demo

# 할당된 limitrange 정보를 확인

kubectl get limitrange -n limitrange-demo

kubectl describe limitrange -n limitrange-demo

# busybox 를 활용하여 설정하기

kubectl apply -f https://k8s.io/examples/admin/resource/limit-range-pod-1.yaml -n limitrange-demo

kubectl get pod -n limitrange-demo busybox1

# 생성된 리소스 정보 확인하기

kubectl get pod -n limitrange-demo busybox1 -o yaml

# 제한된 범위 밖의 리소스를 생성해보기

cp nginx-deploy.yaml limit-test-deploy.yaml

vim limit-test-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
  namespace: limitrange-demo
spec:
  replicas: 3
  selector:
    matchLabels:
      run: nginx
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        ports:
        - containerPort: 80
        resources: 
          requests:
            memory: "200Mi"
            cpu: "500m"
          limits:
            memory: "1Gi"
            cpu: "1"
status: {}
kubectl create -f limit-test-deploy.yaml 

kubectl get pod -n limitrange-demo

kubectl get deploy -n limitrange-demo

- 조회를 해보면 할당받지 못하는 모습을 볼 수 있다.

kubectl describe deploy -n limitrange-demo

# rs 레플리카셋 확인해보기

kubectl describe rs -n limitrange-demo
728x90
반응형