k8s 구성 모범 사례 - ChoDragon9/posts GitHub Wiki
k8s 구성 모범 사례 정리
일반적인 구성 팁
- 구성을 정의할 때, 안정된 최신 API 버전을 명시한다.
- 구성 파일들은 클러스터에 적용되기 전에 버전 컨트롤에 저장되어 있어야 한다. 이는 만약 필요하다면 구성의 변경 사항을 빠르게 되돌일 수 있도록 해준다. 이는 또한 클러스터의 재생성과 복원을 도와준다.
- 의미상 맞다면 가능한 연관된 오브젝트들을 하나의 파일에 모아 놓는다. 때로는 여러 개의 파일보다 하나의 파일이 더 관리하기 쉽다.
단독 파드 vs 레플리카 셋, 디플로이먼트
가능하다면 단독 파드(즉, 레플리카 셋이나 디플로이먼트에 연결되지 않는 파드)를 사용하지 않는단. 단독 파드는 노드 장애 이벤트가 발생해도 다시 스케줄링되지 않는다.
명백하게 restartPolicy: Never
를 사용하는 상황을 제외한다면, 의도한 파드의 수가 항상 사용 가능한 상태를 유지하는 레플리카 셋을 생성하고,
파드를 교체하는 전략(롤링 업데이트와 같은)을 명시하는 디플로이먼트는 파드를 직접 생성하기 위해 항상 선호되는 방법이다.
서비스
서비스에 대응하는 백엔드 워크로드(디플로이먼트 또는 레플리가 셋) 또는 서비스 접근이 필요한 어떠한 워크로드를 생성하기 전에 서비스를 미리 생성한다. 쿠버네티스가 컨테이너를 시작할 때, 쿠버네티스는 컨테이너 시작 당신에 생성되어 있는 모든 서비스를 가리키는 환경 변수를 컨테이너에 제공한다.