kubernetes를 써야 하는가? 1. 컨테이너 레벨에서 더 작은 단위로 컴퓨팅 리소스를 제한할 수 있다. 2. 방을 컨테이너로 독립시켜 다른 서버의 영향을 줄일 수 있다. 3. 이미지라는 규격화된 단위로 게임 서버를 배포할 수 있다. 4. 클라우드 종속성을 줄일 수 있다.
fleetautoscaler.NewController() Controller 생성 Factory에 Informer 등록 Informer생성 & 아래 함수 등록 - ListFunc - WatchFunc workqueue 생성 SyncHandler 함수 등록 - syncFleetAutoscaler() EventHandler 등록 CR의 CUD함수 등록
if f.shuttingDown { return } for informerType,informer := range f.informers { if !f.startedInformers[informerType] { f.wg.Add(1) // ... informer := informer go func(){ defer f.wg.Done() informer.Run(stopCh) }() f.startedInformers[informerType] = true } } } 해당 부분에서 기존 등록된 informer의 Run() 메서드를 호출
workerqueue.Run() workerQueue queue 실행 감시 실행 Create/Update/Delete Callback 호출 Add Get SyncHandler() syncFleetAutoScaler Fleets().Get() computeDesiredFleetSize()로 사이즈 계산 c.scaleFleet c.updateStatus