Skip to content
This repository has been archived by the owner on May 7, 2022. It is now read-only.

Latest commit

 

History

History
134 lines (95 loc) · 4.64 KB

README.md

File metadata and controls

134 lines (95 loc) · 4.64 KB

ft_services

O projeto consiste na implementação de uma infraestrutura com diversos serviços utilizando kubernetes. Projeto escolar realizado na 42 São Paulo.


ToC 📋


Introdução

O objetivo desse projeto é a implementação e gerenciamento de Clusters com o Kubernetes O projeto consiste na implementação de uma infraestrutura com diversos serviços utilizando Kubernetes. Portanto, instalaremos um cluster que agrupa vários containers de serviço. Cada serviço funciona em um container dedicado, e os containeres têm o mesmo nome do serviço associado. Por motivos de desempenho, os containeres são construídos no Alpine Linux. Para completar o projeto, precisamos dos próximos componentes:

Componentes

  • MetalLB: É um Load Balancer que gerencia o acesso externo aos seus serviços. É a única entrada para o cluster.

  • Nginx: É um servidor HTTP e de reverse proxy, um servidor proxy de correio e um servidor proxy TCP / UDP genérico.

  • MariaDB: É um sistema de gerenciamento de banco de dados derivado do MySQL com GPL (General Public License).

  • Wordpress: É um CMS (Content Managament System) voltado para a criação de qualquer tipo de página web.

  • phpMyAdmin: É uma ferramenta de software livre destinada a administrar MySQL na web.

  • InfluxDB: É um banco de dados de série temporal de código aberto desenvolvido por InfluxData.

  • Telegraf: É o agente de servidor de código aberto para ajudá-lo a coletar métricas de suas pilhas, sensores e sistemas.

  • Grafana: É um software gráfico e de análise de código aberto. Permite consultar, visualizar, alertar e explorar suas métricas do Time Series Database Storage (TSDB).

Tecnologias

  • Docker: É um projeto de código aberto que automatiza a implantação de aplicativos em containeres de software.

  • Kubernetes: Is an open-source system for automating the deployment, scaling, and handling of containerized applications.

  • Minikube: É um sistema de código aberto para automatizar a implantação, dimensionamento e manuseio de aplicativos em contêineres.

  • Alpine Linux: É uma distribuição Linux baseada em musl e BusyBox, que tem como objetivo ser leve e segura por padrão.

Back To The Top

Como Executar o ft_services

Instalar Dependências

1º - Atualize seu sistema:

> sudo apt-get update -y
> sudo apt-get upgrade -y

2º - Instale os pacotes nescessários:

> sudo apt-get install curl
> sudo apt-get install apt-transport-https
> sudo apt-get install ca-certificates
> sudo apt-get install software-properties-common

3º - Instale o Docker

> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
> sudo apt update
> apt-cache policy docker-cesudo
> sudo apt-get install docker-ce

⚠️ Para evitar digitar sudo sempre que executar o comando docker, adicione seu nome de usuário ao grupo docker

> sudo usermod -aG docker $(whoami);
> su - ${USER}

4º - Instale o Minikube:

> wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
> sudo cp minikube-linux-amd64 /usr/local/bin/minikube
> sudo chmod 755 /usr/local/bin/minikube

5º - Instale o Kubectl

> curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
> chmod +x ./kubectl
> sudo mv ./kubectl /usr/local/bin/kubectl

Back To The Top

Executar o ft_services

Após ter instalado todas as dependências, basta rodar o seguinte comando na pasta que clonou:

> ./setup.sh

Back To The Top


Ports

  • Nginx on Port 80(http), 443(https), and 22(ssh)
  • FTP on port 21, and 30021(passive mode)
  • Wordpress on port 5050
  • PhpMyAdmin on port 5000
  • MySQL on port 3306
  • Grafana on port 3000
  • Influxdb on port 8086

Back To The Top