[영상 보기] 쿠버네티스 프로비저닝 툴과의 만남부터 헤어짐까지
내용 요약
카카오에서는 사내 제품인 DKOS 를 이용하고 있고, 쿠버네티스 서비스를 제공하기 위해 일련의 과정(VM 생성, 쿠버네티스 클러스터 구축, CNI 등 managed pod 생성) 을 수행 해줘야 함
- 초기에는 부담이 되었기 때문에 직접 자동화 하기보다는 프로비저닝 툴을 사용하기로 결정함
프로비저닝 툴로는 1) 안정성 2) 앤서블을 통해 단일 작업으로 다수 노드 제어 가능 3) VM 생성 이후 작업들을 자동화 할 수 있다는 장점으로 kubespray 를 선택
운영하면서 느낀 아쉬운 점
- 보안 (원격 처리를 위한 SSH 접근에 대한 보안 취약점 존재 가능)
- 의존성 (앤서블, 파이썬 등의 구성요소의 의존성 가짐)
- 설치 시간 (OS 설치부터 managed pod 설치까지 약 7~8분 소요 -> 장애 시에는 다소 긴 시간) 및 유지보수
→ 위와 같은 아쉬운 점으로 인해 kubespray 를 사용하지 않고, 직접 프로비저닝을 자동화하기로 결정
데이터 플레인 프로비저닝 자동화
잘 변경되지 않는 정적 데이터는 VM Image 로, 동적 데이터는 cloud-init 스크립트로 구성함으로써 1) 신속하고 2) 경량으로 외부 툴에 의존하지 않고도 프로비저닝을 자동화 할 수 있었음
- 프로비저닝 순서: VM 이미지 생성 → cloud-init 스크립트와 함께 VM 생성 요청 → VM 생성 → cloud-init 스크립트로 동적 데이터 처리 → control plane 에 노드 조인
- 정적 데이터: 컨테이너 런타임, 쿠버네티스에 필요한 실행파일, 커널/OS 파라미터와 같은 데이터
- 동적 데이터: 인증서와 같은 데이터
느낀점
- 지금까지는 주로 매니지드 서비스를 이용하여 쿠버네티스 클러스터를 구축하였기 때문에 쿠버네티스 프로비저닝 툴에 대해 깊게 고민해본 적이 없었는데, 해당 발표를 통해 실제로 프로비저닝 툴을 사용해본 실무자 분의 경험과 생각을 들을 수 있어서 좋았음
- 개인적으로 쿠버네티스 클러스터를 구축해 볼 때는 매니지드 서비스를 사용하지 않고 직접 구축 해볼 생각이었기 때문에 kubeadm 과 같은 툴을 고려 했었는데, 해당 영상을 통해 툴을 사용하지 않고 직접 자동화 하는 방식도 고려해봐도 좋겠다는 생각이 들었음.