SALT SYNDIC
1) saltstack 토폴로지 구성시 구조적으로 유연하게 확장 할수 있음 예: AA 서비스 3000 미니언 , BB 서비스 3000 미니언 -> syndic 노드를 2개로 각각 분리하여 운영 할수 있음 single master 일때 부하 발생시 syndic 구성을 통해 부하 분산
2) 특별한 passthrough 미니언 노드임 (중계 노드)
예: 상위 master에서 명령을 내리면 -> syndic은 자신에게 연결된 minion에 명령 전달후 결과값을 -> master 에 리턴
3) syndic 노드는 자신에게 연결된 minion 들만 제어함 * syndic 노드 서버 자체적으로 salt-master 역활을 할수 있음. 4) syndic 노드에 필요한 daemon * salt-master * salt-syndic * salt-minion (선택 사항이나 가급적이면 설치하라고 함) 5) syndic_wait 설정 값 (신디케이트로부터의 리턴을 기다리는 시간) * large scale 인프라나 sydic 노드수가 많다면 syndic 이 이벤트 결과를 반환하는데 시간이 충분하지 않을수 있음 syndic_wait 기본값은 5초이며 인프라 스케일에 따라 적절하게 설정값을 조정하여야 함. 6) Multi master 로 여러개의 syndic 운영 가능 |
구성 예제
- master node (manager) : salt-master
- syndic node (syndic01) : salt-master , salt-syndic , salt-minion
- minion node (worker01.rootdz.com , worker02.rootdz.com, worker03.rootdz.com, syndic01) : salt-minion
1) Syndic (syndic01)
- /etc/salt/master -> syndic_master: 11.22.33.44 (master(manager) IP or hostname)
- service salt-syndic start
- service salt-master start
- service salt-minion start
* process
* salt-key (syndic node 에 worker02 minion 만 등록되어져 있음)
2) Master (manager)
- salt-key -A (syndic01 key accept)
- /etc/salt/master -> order_masters: True
* syndic_wait 값도 인프라 규모에 맞게 적절하게 조정
- service salt-master restart
* salt-key (master node 에 worker02 minion은 없음)
3) Minion (worker01.rootdz.com , worker02.rootdz.com, worker03.rootdz.com)
* woker02 minion 만 syndic 에 연결 / 나머지는 master (manager) 에 직접 연결
- worker01.rootdz.com, worker03.rootdz.com -> /etc/salt/minion -> master: 11.22.33.44 (master(manager) IP)
- worker02.rootdz.com -> /etc/salt/minion -> master: 11.22.33.77 (syndic(syndic01) IP)
4) 테스트
a. Master (manager) test
b. Syndic (syndic01) test
salt-syndic 을 활용하면 대규모 인프라 운영 관리시 (minion 노드수가 많고 서비스가 복잡할때)
saltstack 토폴로지 구성을 보다 유연하게 할수 있고, 구조적으로 확장함에 있어 유용할듯 하다.
* 참고 : Linked in 의 경우 고민 끝에 아래 구성으로 현재 운영중이라고 한다.