42교육생이 아니라면 과제해석은 생략하셔도 됩니다 🤠
Ft_services will introduce you to Kubernetes. You will discover cluster management and
deployment with Kubernetes. You will virtualize a network and do "clustering".
클러스터는 컨테이너화된 애플리케이션을 실행하기 위한 일련의 노드 머신입니다. 쿠버네티스 클러스터를 통해 물리 머신, 가상 머신, 온프레미스, 클라우드에 구애받지 않고 머신 그룹 전체에서 컨테이너를 스케줄링하고 실행할 수 있습니다.
일반 지침
• You must put all the necessary files for the configuration of your server in a folder
called srcs.
• Your setup.sh file should be at the root of your repository. This script will setup
all your applications.
• 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.
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.
You will also have to set up
• 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.
• 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.
• 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.
• 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.
• A FTPS server listening on port 21.
• A Grafana platform, listening on port 3000, linked with an InfluxDB database.
• 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".
사진
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.
It’s useless try to use any Load Balancer provided by Cloud Provider.
you should rather look at MetalLB.