kubernetes 로 클러스터를 만드는 과정이 복잡하다고 생각하실 수 있지만 사실 스크립트로 만들면 이정도로 간단해 집니다. kubernetes, docker package가 준비되었다고 한다면 남는건 3가지 종류의 프로세스가 있습니다.
- 첫번째 마스터
$./init_master.sh $MASTER_IP
- kubeadm init 으로 셋업
- (옵션) CNI등 네트워크 셋업 (사실 클러스터링과 관계 없음)
- kubeadm init 으로 생성된 certification 등을 다른 이후 서버들에게 제공
- 두번째 이후 마스터
$./join_master.sh $MASTER_IP master
- 첫번째 마스터가 파일을 서빙 할때까지 대기
- 파일 서빙되면 certification 을 다운로드
- 이후 kubeadm join
- 워커
$./join_master.sh $MASTER_IP
- 첫번째 마스터가 파일을 서빙 할때까지 대기
- 이후 kubeadm join
위의 3가지 프로세스는 모두 동시에 시작합니다.
그래서 테라폼으로 모든 vm node가 각자 필요한 cloud-init
스크립트를 가진 상태로 시작하면 이후 모두 클러스터링이 끝난 상태로 정리가 됩니다.
만약 100년
짜리 certification을 갖는 클러스터를 만들려면 아래와 같은 방법으로 미리 certification을 만들어서 모든 마스터가 나눠 가진 상태에서 시작하면 됩니다.