다음은 쿠버네티스 스터디 자료를 참고해 정리한 내용입니다.
특정 네임스페이스에 할당 되는 자원의 범위 , 기본값지정
<1> 특정 네임스페이스에 할당 되는 자원의 범위 , 기본값지정 limitrange
<2> 삭제
<3> 범위 넘어선 Pod 생성 시도
<4> limitrange 삭제
<5> 다음과정
<1> 특정 네임스페이스에 할당 되는 자원의 범위 , 기본값지정 limitrange
1
cat << EOF > limitrange.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: limit-range
spec:
limits:
- default: # 1. 자동으로 설정될 기본 Limit 값
memory: 256Mi
cpu: 250m
defaultRequest: # 2. 자동으로 설정될 기본 Request 값
memory: 128Mi
cpu: 125m
max: # 3. 자원 할당량의 최대값
memory: 0.5Gi
cpu: 500m
min: # 4. 자원 할당량의 최소값
memory: 100Mi
cpu: 100m
type: Container # 5. 각 컨테이너에 대해서 적용
EOF
2
kubectl apply -f limitrange.yaml
3
확인
kubectl get limitranges
NAME CREATED AT
limit-range 2021-07-19T09:21:11Z
limits 2021-07-18T12:30:31Z
kubectl describe limitranges limit-range
Name: limit-range
Namespace: default
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu 100m 500m 125m 250m -
Container memory 100Mi 512Mi 128Mi 256Mi -
5
pod 생성하고 확인
kubectl run webpod --image nginx
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/webpod 1/1 Running 0 14s 100.112.62.135 ip-172-20-39-212.ap-southeast-1.compute.internal <none> <none>
6
kubectl describe pod webpod | grep Limits -A 5
Limits:
cpu: 250m
memory: 256Mi
Requests:
cpu: 100m
memory: 128Mi
<2> 삭제
kubectl delete pod webpod
<3> 범위 넘어선 Pod 생성 시도
1
cat << EOF > pod-exceed.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-exceed
spec:
containers:
- name: ubuntu
image: ubuntu
command: ["tail"]
args: ["-f", "/dev/null"]
resources:
limits:
memory: "800Mi"
cpu: "750m"
requests:
memory: "500Mi"
cpu: "500m"
EOF
2
생성
kubectl apply -f pod-exceed.yaml
Error from server (Forbidden): error when creating "pod-exceed.yaml": pods "pod-exceed" is forbidden: [maximum cpu usage per Container is 500m, but limit is 750m, maximum memory usage per Container is 512Mi, but limit is 800Mi]
범위를 넘어서 실패함
리밋!!!
max 보며 된다?
메모리 max가 0.5Gi = 512M 인데 800으로 해서 실패
cpu max가 500m인데 750으로 해서 안됨
<4> limitrange 삭제
kubectl delete -f limitrange.yaml
<5> 다음과정
https://brunch.co.kr/@topasvga/1727
감사합니다.