[ft_services] 1. 과제해석

이호용·2021년 4월 27일
0

42_ft_services

목록 보기
1/8

이 자료는 42서울 서브젝트 과제입니다.

42교육생이 아니라면 과제해석은 생략하셔도 됩니다 🤠

Ft_services

  • This is a System Administration and Networking project.
  • 이것은 시스템을 관리하고, 네트워킹 프로젝트입니다.
  • (드디어 서비스! 즐겁게 해보자!)

목차

  1. Introduction
  2. General instructions
  3. Mandatory part

챕터 1

Ft_services will introduce you to Kubernetes. You will discover cluster management and
deployment with Kubernetes. You will virtualize a network and do "clustering".

  • ft_services가 쿠버네틱을 소개합니다. 클러스터형 관리 및 쿠버네틱을 사용한 배포를 할수 있습니다. 네트워크를 가상화 할 수 있고, 클러스터링을 수행합니다.

    클러스터는 컨테이너화된 애플리케이션을 실행하기 위한 일련의 노드 머신입니다. 쿠버네티스 클러스터를 통해 물리 머신, 가상 머신, 온프레미스, 클라우드에 구애받지 않고 머신 그룹 전체에서 컨테이너를 스케줄링하고 실행할 수 있습니다.

쿠버네틱스 클러스터란?

챕터 2

일반 지침
• You must put all the necessary files for the configuration of your server in a folder
called srcs.

  • 너는 서버 구성에 필요한 모든 파일을 src폴더 안에 넣어야합니다.

• Your setup.sh file should be at the root of your repository. This script will setup
all your applications.

  • 너느 setup.sh파일은 너의 root 저장소에 있어야한다. 이 스크립트는 모든 응용프로그램을 셋업 합니다.

• This subject requires both old and new practices. We therefore advise you not to
be afraid to read a lot of documentation about Docker, Kubernetes, and all other
things useful for the project.

  • 이 주제는 기존의 / 새로운 practies모두 요구합니다.
  • 따라서 도커와 쿠버네틱, 그외 유용한 문서들에 대해 많은 양의 문서를 읽어야합니다. 두려워하지 않는편이 좋습니다.

챕터 3

Mandatory part

  • The project consists of setting up an infrastructure of different services.

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

    To do this, you
    must use Kubernetes. You will need to set up a multi-service cluster.

  • 이렇게 하려면, 너는 쿠버네틱스를 사용해야합니다. 다중 서비스 클러스터를 설정해야합니다.
    Each service will have to run in a dedicated container.
    Each container must bear the same name as the service concerned and for performance
    reasons, containers have to be build using Alpine Linux.

  • 각 서비스는 전용 컨테이너안에서 실행할수 있습니다. 각 컨테이너는 관련 서비스와 동일한 이름을 가져야합니다. 그리고 성능의 이유로, 콘테이너는 alpine linux를 사용해야합니다.

Also, they will need to have a Dockerfile written by you which is called in the setup.sh.
You will have to build yourself the images that you will use. It is forbidden to take
already build images or use services like DockerHub.

  • 또한 그들이 setup.sh에서 호출되는 도커파일이 작성되어 있어야합니다.
  • 자신만이 쌓은 이미지를 사용 할수 있다. 이미 빌드된 이미지를 사용하거나 dockerhub와 같은 서비스를 사용하는 것은 금지되어있습니다.
  • 또한 setup.sh에서 호출되는 도커파일이 작성되어 있어야합니다.
  • 너 자신이 쌓은 이미지를 사용 할수 있다. 이미 빌드된 이미지를 사용하거나 DockerHub와 같은 서비스를 사용하는 것은 금지되어 있습니다.

You will also have to set up

  • 너는 또한 설정해야한다.
    • The Kubernetes web dashboard. This will help you manage your cluster
  • 쿠버네틱 웹 데시보가, 너의 클러스터 관리를 도와준다.

• The Load Balancer which manages the external access of your services. It will be
the only entr cluster.. You must keep the ports associated with the
service (IP:3000 for Grafana etc). Load Balancer will have a single ip.

  • 서비스의 외부 액세스를 관리하는 로드 밸런서가 클러스터의 유일한 진입 점이 될수 있습니다.
  • 너는 서비스와 맞는 포트를 유지해야합니다. (예 : grafana 3000)
  • 로드벨런스는, 단일 아이피를 가집니다.

• A WordPress website listening on port 5050, which will work with a MySQL database. Both services have to run in separate containers. The WordPress website will have
several users and an administrator. Wordpress needs its own nginx server. The
Load Balancer should be able to redirect directly to this service.

  • 워드프레스 포트 5050에서 mysql 데이터베이스를 수신하는 웹사이트.
  • 두 서비스는 모두 모두 별도의 컨테이너에서 실행되어야 합니다.
  • 워드프레스 웹사이트는 여러사이트 및 관리자를 가질 수 잇습니다.
  • wordpress는 자체의 nginx서버를 필요로 합니다.
  • Load Balancer는이 서비스로 직접 리디렉션 할 수 있어야합니다.

• phpMyAdmin, listening on port 5000 and linked with the MySQL database. PhpMyAdmin needs its own nginx server. The Load Balancer should be able to redirect
directly to this service.

  • phpmyadmin은 5000포트에서 동작하고, mysql 데이터 베이스와 연결되어 있어야합니다.
  • phpmyadmin은 자체 niginx서버가 있어야합니다.
  • Load Balancer는이 서비스로 직접 리디렉션 할 수 있어야합니다.

• A container with annginx server listening on ports 80 and 443. Port 80 will be in
http and should be a systematic redirection of type 301 to 443, which will be in
https.
The page displayed does not matter as long as it is not an http error.
This container will allow access to a /wordpress route that makes a redirect 307
to IP:WPPORT.
It should also allow access to /phpmyadmin with a reverse proxy to IP:PMAPORT.

  • 콘테이너와 함께 nginx서버는 80, 443에서 수신 대기중입니다.
  • 80포트은 http유형이며, https인 443으로 시스템적인 리다렉션(301)이 있어야 합니다.
  • 표시되는 페이지는 http오류가 아닌 이상 중요하지 않습니다.
  • 이 컨테이너는 리다렉션을 만드는데 대한 /wordpress경로에대한 액세스를 허용합니다. IP:WPPORT로 리디렉션(307)하는 접근을
  • 또한 /phpmyadmin로의 접근을 허용해야합니다. 리버스 프록시로 IP:PMAPORT로.

• A FTPS server listening on port 21.

  • 포트 21을 수신하는 서버.

• A Grafana platform, listening on port 3000, linked with an InfluxDB database.

  • InfluxDB 데이터베이스와 grafana플랫폼은 연결되어 있고, grafana는 포트 3000에서 수신 가능합니다.
    Grafana will be monitoring all your containers. You must create one dashboard per service.
  • Grafana는 모든 컨테이너를 모니터링합니다, 서비스 하나당 대시보드 하나를 만들어야합니다.
    InfluxDB and grafana will be in two distincts containers.
  • InfluxDB와 Grafana는 두 개의 별개 컨테이너에 있어야합니다.

• In case of a crash or stop of one of the two database containers, you will have to
make shure the data persist.

  • 두 데이터베이스 컨테이너 중 하나가 터지거나 중지되는 경우에, 데이터가 지속되는지 확인해야합니다.

• All your containers must restart in case of a crash or stop of one of its component
parts

  • 모든 컨테이너는 구성 요소중 하나가 충돌하거나, 중지되는 경우 다시 시작해야합니다.

Make sure that each redirection toward a service is done using a load balancer. FTPS,
Grafana, Wordpress, PhpMyAdmin and nginx’s kind must be "LoadBalancer". Influxdb
and MySQL’s kind must be "ClusterIP". Other entries can be present, but none of them
can be of kind "NodePort".

  • 서비스에 대한 각 리디렉션이 로드 밸런서를 사용하여 수행되는지 확인하십시오.
  • FTPS, Grafana, Wordpress, PhpMyAdmin, nginx의 kind는 “LoadBalancer”여야합니다.
  • Influxdb MySQL의 kind는 “ClusterIP”여야합니다.
  • 다른 엔트리들이 있을 수 있지만 kind가 “NodePort”가 될 수는 없습니다.

사진

Here is an example of what you will need to set up:
동그라미는 유저가 접근할 수 있는 것들이고, 네모는 유저는 불가, 관리자만 접근 가능합니다.

주의

Usage of Node Port services, Ingress Controller object or kubectl
port-forward command is prohibited.
Your Load Balancer should be the only entry point for the Cluster.

  • Node Port 서비스, Ingress Controller 오브젝트, kubectl 포트 포워드 명령은 금지됩니다.
  • Load Balancer가 클러스터의 유일한 엔트리포인트여야 합니다.

참고

It’s useless try to use any Load Balancer provided by Cloud Provider.
you should rather look at MetalLB.

  • 클라우드 제공 업체에서 제공하는 로드밸런서를 사용하려고 시도하는 건 쓸모 없어요.
    당신은 MetalLB를 봐야합니다.

0개의 댓글

관련 채용 정보