6.15 / 16:00~16:30
| 항목 | 내용 |
|---|---|
| 시나리오 | 클로버뱅크(은행)의 고객 서비스 개발팀 |
| 우선 목표 | 오픈스택 클러스터 빠르게 구현 (여기까지 모두 함께) |
| 이후 | 역할 분담 + 매주 1~2회 진행 상황 공유 |
| 핵심 | "왜 이걸 선택했는가?" 이유가 반드시 있어야 함 |
| 항목 | 내용 |
|---|---|
| 담당 VM | ctrl (4GB) |
| 담당 업무 | Docker Swarm 클러스터 자동화 (매니저1 + 워커2) |
"Ansible 같은 경우는 노드를 우리가 스웜 클러스터를 하나 둘 세 개 만든다 할 때, 기존 방법대로라면 노드 하나 만들고 또 하나 만들고 또 하나 만들고, 세 개 만들고 각자 SSH로 들어가서 도커 설치하고 뭐 설치하고, 그다음 여기에 토큰 발행해서 조인시키면 수동으로 하나씩 해야 되잖아요. 오픈스택이 구현된 상태에서 노드가 만들어졌다, 그럼 각각의 노드에 키가 들어가 있어야 해요. 키 관리를 위한 서버를 두고 이 서버에서 각각의 노드 3개에 대해서 매니저와 워커1,2 도커 설치하기, Ansible로 조인시키기 등등. 노드가 3개 있고 노드 세 군데에 도커 스웜 클러스터를 구축하고 싶다면 어떤 식의 코드가 필요한지 그런 것들을 준비해보셔야 해요."
| 번호 | 작업 | 상세 |
|---|---|---|
| 1 | 인벤토리 파일 작성 | hosts.ini에 manager, worker1, worker2 정의 |
| 2 | SSH 키 기반 접속 설정 | ctrl VM에서 각 노드로 패스워드 없이 접속 가능하도록 |
| 3 | 도커 설치 플레이북 | 모든 노드에 docker 설치 + 서비스 등록 |
| 4 | 스웜 초기화 플레이북 | manager 노드에서 docker swarm init |
| 5 | 조인 토큰 자동화 | manager에서 토큰 발급받아 worker에 자동 조인 |
| 6 | 멱등성 보장 | 이미 설치되어 있으면 스킵하도록 조건문 처리 |
"수동으로 일일이 SSH 접속해서 설치하면 실수도 나고 시간도 오래 걸립니다. Ansible을 쓰면 한 번 작성해두면 언제든지 재현 가능하고, 노드가 추가되어도 쉽게 확장할 수 있기 때문에 선택했습니다."
| 항목 | 내용 |
|---|---|
| 담당 VM | core + node01 + node02 (14GB 이상) |
| 담당 업무 | 노드 + 가상서버 모니터링 (컨테이너까지 할지는 선택) |
"클러스터 잘 돌아가는지 검토하는 모니터링은 지금 공부하시죠. 근희씨, 모니터링의 목적은 세부적으로 무엇인지, 이 도구를 쓴 이유가 합당한지 생각해보셔야 해요. '남들 다 쓰니까 이거 합시다'라고 할 필요 없어요. 우리들이 모니터링 도구가 많긴 한데, 우리가 가장 관심 있었던 부분은 오픈스택 아래에 있는 노드들을 모니터링하는 게 우리 목적이었잖아요. 노드 부분만 모니터링하고 싶고, 가상 서버 모니터링하고 싶은 거죠. 칵투스도 있고, 많아요."
"스웜 클러스터랑 모니터링, 노드를 모니터링할지 컨테이너를 모니터링할지 아님 두 가지 같이 할 것인지, 선택 방법이 달라질 수 있으니까 프로젝트에서는 항상 네가 이걸 왜 선택했어? 근희씨 입장에서는 모니터링 도구는 이런 것들이 있다, 모니터링을 하기 위해서는 데이터를 수집해야 하는데 데이터 수집 방식은 Pull, Push 방식이 있는데 우리는 뭘 선택했다, 답도 나와야 한다. '아 근희씨, 요거 말고 프로메테우스 인플럭스DB 써도 되는데 왜 프로메테우스 썼나요?' 상용 솔루션 비슷한 거 있는데 왜 그거 썼나요? 워낙 레퍼런스 많으니 구축은 쉬운데, 자료 복사하면 구축은 되요. 근데 선택의 이유가 있어야 해요."