-
Notifications
You must be signed in to change notification settings - Fork 1
3. ft_services
moon9ua edited this page Apr 16, 2020
·
1 revision
요약: 시스템 관리 및 네트워킹 프로젝트이다.
ft_services는 kubernetes를 소개한다. 이 프로젝트는 docker-compose를 통한 docker 사용 지식을 넓히고, kubernetes를 통한 틀러스터 관리 및 배포를 가능하게 할 것이다. 당신은 네트워크를 가상화해볼 것이고, 클러스터링을 해볼 것이다.
- 서버 구성에 필요한 파일은 srcs 폴더에 넣어야 한다.
- setup.sh 파일은 루트에 있어야 한다. 이 스크립트는 당신의 모든 어플리케이션을 설정(setup)할 것이다.
- 이 주제에는 기존의 방식과 새로운 방식 모두 필요하다. 따라서 이렇게 충고하고 싶다. docker, kubernetes, 그 외 모든 유용한 것들에 대한 많은 글들을 읽는 것을 두려워하지 마라.
이 프로젝트는 다른 서비스의 인프라를 설정하는 것으로 이루어져 있다. 이것을 하기위해, 당신은 kubernetes를 사용해야 한다. 다중 서비스 클러스터를 설정해야 한다. 각 서비스는 전용 컨테이너에서 실행되어야 한다. 각 컨테이너는 해당 서비스와 같은 이름을 써야하며, 성능상의 이유로 Alpine linux를 사용해서 빌드해야 한다. 또한 컨테이너들은 setup.sh에서 호출된 dockerfile을 가져야 한다. 당신이 사용할 이미지는 직접 만들어야 한다. 이미 빌드된 이미지를 사용하는 것은 금지다.
또한 다음을 설정해야 한다.
- Kubernetes 웹 대시보드. 이것은 클러스트를 관리하는 것을 도와줄 것이다.
- Ingress Controller. 이것은 서비스의 외부 접근을 관리할 것이다. Nginx 컨테이너로 리다이렉트 될 것이다.
- Nginx 서버는 80, 443 포트를 listen한다.
- FTPS 서버는 21 포트를 listen한다.
- WordPress 웹사이트는 5050 포트를 listen하고, MySQL 데이터베이스와 작동한다. 두 서비스는 각각의 컨테이너에서 실행되어야 한다. Wordpress 웹사이트는 여러 유저들, 그리고 관리자를 가진다.
- Phpmyadmin은 5000 포트를 listen하고, MySQL 데이터베이스와 링크된다.
- grafana 플랫폼은 3000 포트를 listen하고, influxDB 데이터베이스와 링크된다. grafana는 모든 컨테이너를 모니터링할 것이다. 하나의 서비스마다 하나의 대시보드를 만들어야 한다. influxDB와 grafana는 두개의 분리된 컨테이너로 이루어질 것이다.
- 두 데이터베이스 컨테이너 중 하나가 충돌하거나 정지하는 경우, 데이터가 유지되도록 해야한다.
- SSH에 로그인해서 Nginx 컨테이너에 접근할 수 있어야 한다.
- 충돌 혹은 중지 시 모든 컨테이너를 다시 시작해야 한다.