Um projeto de orquestrador de serviços utilizando o Kubernetes como framework para criaçao de clusters com containers.
O projeto é dividido em duas partes.
-
As configurações e deploy do cluster com uma API de acesso para os clientes e deploy de um container com MongoDB para persistências dos dados dos clientes.
-
Instalação do CLI e cadastro do cliente para acesso ao serviço, com criação, informações e remoção do serviço.
Para informações mais detalhadas do andamento do projeto, há o arquivo docs.md ou docs.pdf com todo a documentação do projeto.
- AWS CLI Configurada
- Kops
- Kubectl
- jq
Todos os scripts de instalação podem ser encontrados na pasta /scripts do projeto.
- Cluster
Para dar deploy no cluster, é necessário apenas rodar o script full_install_cluster.sh
. Espere em torno de 3-5 minutos para todo o cluster ser configurado para continuar com os passos a seguir
- Dependências
É necessário o serviço Heapster do Kubernetes para monitoramento de recursos, isso possiblita a escalabilidade horizontal das aplicaçes. Rode o script install_cluster_dependencies.sh
.
- MongoDB
Para persistir os dados dos clientes, optou-se por usar o banco de dados MongoDB. Para dar deploy do serviço do dB no cluster, rode o script install_mongodb.sh
. Espere em torno de 2-3 minutos para configuração do container para continuar os passos a seguir. (Container Docker utilizado pode ser encontrado na pasta /mongo_docker)
- API
A comunicação da CLI com o cluster é feita através de uma API utilizando NodeJS. Para dar deploy dessa API no cluster, rode o script install_api.sh
. O endpoint desse serviço será utilizado posteriormente na CLI. (Container Docker utilizado pode ser encontrado na pasta /servidor_kubectl).
- Client
Os clientes devem seguir somente essa etapa, para instalar o CLI do serviço, rode o script install_client.sh
.
PS: Troque o endpoint da API localizado dentro da CLI na variavél base
pela seu próprio endpoint
Para encontrar o endpoint de sua api, rode o comando:
$ kubectl get service api --output=wide`
O endpoint estará no campo EXTERNAL-IP, complete o URL com a porta 3000.
Endpoint exemplo: http://a91d51e33d61211e794eb02e3238d16d-902563938.us-west-2.elb.amazonaws.com:3000/
Após a instalaço da CLI e substituiço do endpoint da API, rode o seguinte comando para mais informações:
$ banana --help
Para criar um novo usuário, rode:
$ banana configure
As configuraçes de usuário ficam salvas no arquivo config localizado em ~/.banana/
Para dar deploy em um novo serviço:
$ banana create_service
Para buscar informaçes desse serviço, como a URL:
$ banana get_service
E para remover o serviço:
banana delete_service
- Marcelo G. de Andrade
Esse projeto é licenciado pela licença MIT - veja o arquivo LICENSE.md para mais detalhes.