ft_services 박살내기!

    Ft_services 과제 해석

    Ft_services



    요약:

    시스템 관리와 네트워킹에 관한 프로젝트입니다.



       목차


    I 소개
    II 일반 지침
    III 필수 파트



    Chapter I : 소개


    이번 과제는 쿠버네티스(Kubernetes)를 소개합니다.

    cluster 관리, 쿠버네티스를 이용한 배포에 대해 발견하게 될 것입니다.

    네트워크를 가상화하고, "클러스터링"을 수행합니다.




    Chapter II : 일반 지침


    이 프로젝트는 다양한 서비스의 인프라 설정으로 구성됩니다.

    setup.sh 파일은 root에 있어야 합니다. setup.sh는 모든 응용 프로그램을 설정할 것입니다.

    이전의 관행, 새로운 관행 모두 필요합니다.

    그러니 Docker, Kubernetes 및 기타 사항에 대한 많은 문서를 읽는 것을 두려워하지 마세요!




    Chapter III : 필수 파트


    이 프로젝트는 다양한 서비스의 인프라 설정으로 구성됩니다.

    이를 수행하려면 Kubernetes를 사용해야합니다.

    다중 서비스 클러스터가 필요합니다.

    각각의 서버는 전용 컨테이너에서 실행되어야 합니다.

    또한 각각의 컨테이너는 반드시 관련 서비스와 같은 이름을 가져야 하며,

    Alpine Linux를 사용하여 빌드하여야 합니다. (성능 관련 이유)

    setup.sh에서 호출하는 Dockerfile이 있어야 합니다.

    사용할 이미지도 직접 구축해야 합니다.

    이미 빌드된 이미지를 가져오는것, DockerHub 등 서비스를 이용하는 것은 금지되어 있습니다.


    다음의 것들을 설정하여야 합니다 :

    MySQL DB에서 작동하며, Port 5050에서 수신을 대기하는 WordPress입니다.
    두 서비스(mysql, wordpress) 모두 별도의 컨테이너에서 실행되어야 합니다.
    WordPress 웹 사이트에는 여러 User와 Admin이 있고, 자체 nginx 서버가 필요합니다.
    로드 밸런서는 이 서비스로 직접 리다이렉션 할 수 있어야 합니다.
    Kubernetes
    웹 대시보드
    cluster를 관리하는데 도움을 줄 거에요.
    Load Balancer
    로드 밸런서
    당신의 서비스에 대한 외부 접근을 관리합니다.
    클러스터의 유일한 진입 포인트가 될 거에요.
    당신은 "반드시" 서비스와 관련된 포트를 유지해야 합니다. (Grafana: IP 3000)
    로드 밸런서는 단일 IP를 갖습니다.
    Wordpress
    워드프레스
    phpMyAdmin
    PHP 마이어드민
    Port 5000에서 수신을 대기하고 MySQL DB와 연결됩니다.
    자체 nginx 서버가 필요하며, 로드밸런서는 이 서비스로 직접 리다이렉션할 수 있어야 합니다.
    nginx
    엔진X
    포트 80, 443에서 수신을 대기하는 nginx 서버가 있는 컨테이너가 필요합니다.
    Port80(http)는 Port301로부터 Port403(https)로 시스템적 리다이렉션을 하여야 합니다.
    표시되는 페이지는 http error가 아닌 이상 별로 중요하지 않습니다.
    이 컨테이너는 IP:WPPORT로 리다이렉션 307을 만드는 /wordpress 경로를 허용합니다.
    또한 IP:PMAPORT에 대한 역방향 proxy를 사용하여 /phpmyadmin에 대한 접근을 허용해야 합니다.
    FTPS 포트 21에서 작동하는 FTPS 서버가 필요합니다.
    Grafana
    그라-파나
    포트 3000에서 작동하며, InfluxDB와 연결되어 수신 대기하는 플랫폼입니다.
    모든 컨테이너를 모니터링하며, 서비스 당 하나의 대시 보드를 만들어야 합니다.
    InfluxDB와 Grafana는 각각의 컨테이너에 존재합니다.
    Error Case 1 두 DB 컨테이너가 충돌하거나 중지되더라도 데이터가 유지되도록 해야 합니다.
    Error Case 2 전체 컨테이너는 구성 요소 중 하나라도 충돌하거나 중지되면 다시 시작하여야 합니다.

    서비스에 대한 각 리다이렉션이 로드 밸런서를 사용하여 수행하는지 꼭 확인하세요.

    FTPS, Gradana, WordPress, phpMyAdmin, nginx의 종류는 "LoadBalancer"여야 합니다.

    InfluxDB, MySQL의 종류는 "ClusterIP"여야 합니다.

    다른 항목이 있을 순 있지만, "NodePort"여서는 안 됩니다.


    다음은 당신이 설정해야 되는 것의 예시입니다:

    !!!

    Node Port 서비스, Ingress Controller 객체 또는 kubectl 포트-포워드 명령은 금지입니다.
       로드 밸런서는 클러스터에 대한 유일한 진입점이어야 합니다!


    !!!

    클라우드 제공 업체에서 제공하는 로드 밸런서를 사용하는 건.. 별로 쓸모가 없습니다. (긁적)
       MetalLB를 보는게 더 좋을 것 같네요.



    개념 공부하기 (용어공부)

    Kubernetes 쿠버네티스

    참고할만한 사이트들입니다.

    kubernetes.io

    tech.osci.kr

    ko.wikipedia.org

    쿠버네티스는 구글에 의해 2014년도에 만들어졌습니다.

    컨테이너화된 어플리케이션의 자동 배포, 스케일링 등을 관리해주는 Open Source입니다.

    Web Dashboard란