반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ssh
- lvcreate
- 랜카드인식불량
- chmod
- vagrant kubernetes
- journalctl
- docker image
- HTTPD
- docker
- tar
- pvcreate
- firewalld
- yum
- Kubernetes
- 같은폴더
- mount
- ansible
- chatGPT
- 엑셀파일명변경
- vgcreate
- 프로세스
- newbingai
- 날짜변경
- MSBing
- M365필터
- swapon
- permission
- 리다이렉션
- nmcli
- docker network
Archives
- Today
- Total
becool
20210907 (화) request resource, limitrange 본문
반응형
Pod의 리소스 관리
### metrics-server 설치 및 kubectl top nodes 명령어 실행 ### 깃허브 : kubernetes-sigs / metrics-server /releases/latest/download/components.yaml components.yaml 파일에서 137줄에 아래 내용 삽입 (tls 인증을 생략하는 arguments) 137 - --kubelet-insecure-tls kubectl create -f components.ytaml kubectl get pod -n kube-system kubectl top nodes vagrant@kube-control1:~/work/20210907/metrics-server$ kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% kube-control1 359m 17% 1591Mi 41% kube-node1 414m 20% 1722Mi 59% kube-node2 351m 17% 1233Mi 42% kube-node3 620m 31% 1376Mi 47% |
### 요청 리소스 정의
spec:
containers:
- resources:
requests:
cpu: 200m # m (millicore)
memory: 10Mi # Mi (megabytes)
### 리소스 정의
vagrant@kube-control1:~/work/20210907$ cat myapp-pod-req.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod-req
spec:
containers:
- name: myapp
image: devops2341/go-myweb:alpine
resources:
requests:
cpu: 200m
# 200 millicore = 0.2 core
memory: 10Mi
### 리소스 제한
spec:
containers:
- name: myapp
image: devops2341/go-myweb:alpine
resources:
limits:
cpu: 0.5
#500 millicore = 0.5 core
memory: 20Mi
#20 megabytes
반응형
리밋 레인지 (LimitRange)
Kubernetes namespace에서 리소스 할당을 제한하는 정책을 정의하는 object
limitrange가 정의되어있으면, 추후 pods생성시, 범위를 초과하는 manifests 는 실행이 안됨.
namespace 단위로 격리된 limitrange를 정의할 수 있음.
### limitrange 설정 및 결과 보기
vagrant@kube-control1:~/work/20210907$ cat myapp-limitrange.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: myapp-limitrange
spec:
limits:
- type: Pod
min:
cpu: 50m
memory: 5Mi
max:
cpu: 1
memory: 1Gi
- type: Container
defaultRequest:
cpu: 100m
memory: 10Mi
default:
cpu: 200m
memory: 100Mi
min:
cpu: 50m
memory: 5Mi
max:
cpu: 1
memory: 1Gi
maxLimitRequestRatio:
cpu: 4
memory: 10
- type: PersistentVolumeClaim
min:
storage: 10Mi
max:
storage: 1Gi
vagrant@kube-control1:~/work/20210907$ kubectl get limitranges
NAME CREATED AT
myapp-limitrange 2021-09-07T02:26:48Z
vagrant@kube-control1:~/work/20210907$ kubectl describe limitrage myapp-limitrange
error: the server doesn't have a resource type "limitrage"
vagrant@kube-control1:~/work/20210907$ kubectl describe limitrange myapp-limitrange
Name: myapp-limitrange
Namespace: default
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Pod memory 5Mi 1Gi - - -
Pod cpu 50m 1 - - -
Container cpu 50m 1 100m 200m 4
Container memory 5Mi 1Gi 10Mi 100Mi 10
PersistentVolumeClaim storage 10Mi 1Gi - - -
vagrant@kube-control1:~/work/20210907$
### limitrange 초과하는 manifests 실행 시
vagrant@kube-control1:~/work/20210907$ kubectl create -f myapp-pod-huge-req.yaml
The Pod "myapp-pod-huge-req" is invalid:
* spec.containers[0].resources.requests: Invalid value: "4": must be less than or equal to cpu limit
* spec.containers[0].resources.requests: Invalid value: "4Gi": must be less than or equal to memory limit
728x90
'kubernetes' 카테고리의 다른 글
20210908 (수) pod scheduler (0) | 2021.09.08 |
---|---|
20210907 (화) auto scaling (0) | 2021.09.07 |
20210906 (월) deployment strategies, statefulset (0) | 2021.09.06 |
20210906 (월) kubeadm 설치 실습 (0) | 2021.09.06 |
20210903 (금) deployment, deployment strategies (0) | 2021.09.03 |
Comments