static pod
- control-plane(master)의 api를 실행하지 않고 pod를 만든다
- worker노드의 kubelet 의 특정 디렉터리에 yaml을 만들면 자동으로 pod가 생성되고, yaml이 사라지만 pod가 사라짐
- 즉 kubelet 데몬을 통해 pod가 생성됨
- 보통 /etc/kubernetes/manifests 여기 위치가 worker노드의 static pod 생성 파일 저장 위치
- 마스터 노드의 static pod는 다음과 같다
controlplane $ pwd /etc/kubernetes/manifests controlplane $ ls etcd.yaml kube-controller-manager.yaml kube-apiserver.yaml kube-scheduler.yaml
pod 리소스
보통 pod를 만들때 따로 리소스를 제한하지 않으면 모든 리소스를 다쓸 수 있다.
또한 pod를 생성할때 클라이언트가 원하는 자원이상이 남는 노드에 만들 수 있다.
- request는 scheduler가 결정, 즉 이것 이상으로 리소스가 있는 노드에 pod를 만든다
- limit은 리소스가 초과되면 자동으로 restart 된다.
- limit만 쓰면 동일한 값으로 requests가 복제가 되어 들어감
- request만 쓰면 limit은 따로 안들어감
- 만약 requests를 너무 크게 잡아서, 장비가 감당하지 못하면 pod가 생성되지 않고 pending이 된다,
컨테이너별로 리소스 설정
yaml 예제
resources: requests: memory: 1 cpu: 1Gi limits: memory: 3 cpu: 3Gi
pod 변수
- pod 생성 yaml에서 컨테이너의 환경변수를 변경하고 설정할 수 있다.
- 이미 컨테이너에 환경설정이 되어있어도 이를 덮어써서 변경할 수 있다.
- ex
env: - name: ${name} value: ${value}
pod의 세가지 패턴
- sidecar : 한 pod에서는 로그를 만들고 다른 pod에서는 이를 분석, 즉 두개가 함께 동작
- adapter : 외부에 모니터가 있고, 어뎁터 pod가 외부에 모니터링 정보를 받고, web pod가 모니터링 정보를 받아 시각화하여 외부에 제공
- ambassador : 웹서버pod에 고객이 웹서버를 이용하면 이에 대한 정보를 ambassador pod가 lb 역할로 이를 받아 외부에 제공
'쿠버네티스' 카테고리의 다른 글
ReplicaSet (0) | 2022.04.04 |
---|---|
Controller (0) | 2022.04.03 |
init container / infra container (pause conatiner) (0) | 2022.03.28 |
livenessProbe (0) | 2022.03.28 |
쿠버네티스 명령어 정리 (0) | 2022.03.28 |