이 부분은 전 강의에서 다뤘던 내용인데 되게 짧게 다뤘던 것으로 기억..
찾아보려다 작성한 글이 많아서 찾는걸 포기함
CKA 문제보고서 이게 뭐였더라..만 중얼거릴 것 같아서 무섭다
하여튼, Resource Requests는 pod yaml에서 지정 시 해당 resource를 사용할 수 있는 node를 찾게 됨
apiVersion:
kind: Pod
metadata:
name:
labels:
spec:
containers:
- name:
image:
ports:
- continerPort:
resources: ## resource 지정 란
requests:
memory: "4Gi"
cpu: 2
spec:
containers:
- name:
image:
ports:
- continerPort:
resources: ## resource 지정 란
requests:
memory: "4Gi"
cpu: 2
limits: ## limit 설정
memory: "2Gi"
cpu: 2
기본적으로는 limit가 없음
기본적으로 생성될 파드에 대하여(컨테이너) 리소스 limit 설정 가능
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-resource-constraint
spec:
limits:
- default: ## 컨테이너가 limit 명시하지 않았을 때 자동 설정
cpu: 500m
defaultRequest: ## 컨테이너가 request를 명시하지 않았을때 자동 설정
cpu: 500m
max: ## 설정될 수 있는 최대 자원 한게
cpu: "1"
min: ## 설정될 수 있는 최소 자원 한계
cpu: 100m
type: Container
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-resource-constraint
spec:
limits:
- default:
memory: 1Gi
defaultRequest:
memory: 1Gi
max:
memory: 1Gi
min:
memory: 500mi
type: Container
모든 파드를 합쳐서 일정 자원 이상 사용하면 안될 시 - 가정
네임스페이스 기준으로 resource quotas 설정 가능
apiVersion: v1
kind: ResourceQuota
metadata:
name: my-resource-quota
spec:
hard:
requests.cpu: 4
requests.memory: 4Gi
limits.cpu: 10
limits.memory: 10Gi
pod는 일회성 객체에 가깝기 때문에 수정 가능한 부분이 일부
deployment는 수정 자유로움
spec.containers[*].image
spec.initContainers[*].image
spec.activeDeadlineSeconds
spec.toleration
kubectl edit pod webapp
저장 실패 -> 임시 yaml 파일 생성됨 -> 기존 Pod 삭제 -> 임시 파일로 새 Pod 생성
kubectl get pod webapp -o yaml > my-new-pod.yaml
vi my-new-pod.yaml
kubectl delete pod webapp
kubectl create -f my-new-pod.yaml
kubectl edit pod elephant
했을 때
/tmp/kubectl-edit-321321.yaml 이렇게 hint를 줌
수정사항 변경 후
kubectl replace --force -f /tmp/kubectl-edit-321321.yaml
위 명령어 입력 시 pod 삭제 후 replace됨