박시현(sean.park) | 이도경(roland.lee) | 이미나(nina.lee) | 김도현(bruce.kim) | 안태진(gene.an) | 정예은(alyssa.jeong) |
---|---|---|---|---|---|
- 팀장 - Cloud - GitHub |
- Cloud - GitHub |
- Back-end - GitHub |
- Front-end - GitHub |
- AI - GitHub |
- AI - GitHub |
- 박시현(sean.park)
- 팀장
- Cloud
- <sean.park> 작성해주세요!
- 이도경(roland.lee)
- Cloud
- Ansible playbook을 이용한 k8s cluster 구축 자동화
- 애플리케이션(FE, BE, AI) 배포 및 클러스터 내부 네트워크 설정
- 모니터링 시스템(Prometheus,Grafana) 구축 및 운영
- 알람 시스템(Alertmanager, Discord) 구축 및 운영
- CI/CD 파이프라인(Jenkins, Kaniko) 구축 및 배포 자동화
- Vault, Vault-Injector 구축 및 운영
- ELK Stack + Filebeat 구축 및 운영
- 이미나(nina.lee)
- Back-end
- <nina.lee> 작성해주세요!
- 김도현(Bruce.kim)
- Front-end
- 모든 Front-end 구현
- 안태진(gene.an)
- AI
- <gene.an> 작성해주세요!
- 정예은(alyssa.jeong)
- AI
- <alyssa.jeong> 작성해주세요!
📝 목차
- K8s 클러스터는 Service Node 2개, Master Node, Devops Node, ELK Node 이렇게 총 5개로 구성되어 있습니다.
- github에 있는 각 서비스의 Repo의 Main Branch에 push가 되면 Jenkins에 연결된 github webhook이 Jenkins로 전달되고 CI/CD Pipeline이 빌드됩니다. CI는 Kaniko를 통해서 build되고 build된 Image는 github package Registry에 저장됩니다. CD는 Kubernetes API Plugin을 통해서 지정된 build된 이미지를 배포합니다.
- 모니터링 시스템은 Prometheus, Node-Exporter,Kube-states-metrics를 통해서 metrics를 수집하고 Grafana를 통해서 시각화할 수 있는 도구로 사용하였습니다.
- 로깅 시스템은 ELK Stack + Filebeat를 구성하였습니다. 각 노드에 있는 로그에 대한 데이터는 Filebeat를 통해서 수집하도록 하였고 Filebeat가 수집된 로그 데이터를 Logstash에 전송하면 Logstash에서는 logstash.yml에 정의된 filter를 통해서 필요한 로그 데이터를 추출하고 추출한 로그내용을 Elasticsearch로 전송하도록 설정하였습니다. Kibana를 통해서 수집한 로그에 대한 내용을 시각화합니다.
- 장애 발생시 Prometheus confingmap.yaml에 있는 alerting_rule.yml에 따라서 Alertmanager를 통해서 알람이 오도록 설정하였습니다. 알람을 받는 수단은 Discord(Main 팀 소통 채널)로 구성하였습니다.
[사진]