Neste repositório é descrito o projeto de migração e implementação dos serviços para uma infraestrutura com contêineres “orquestrados” pelo Kubernetes. Está sendo implementado uma nuvem privada em cima do projeto cticsjeifsc/coreos.
A implementação da estrutura Kubernetes seguiu a
documentação oficial.
As configurações do kubernetes em si estão no projeto
cticsjeifsc/coreos em cada pasta no arquivo
cloud-config para cada nó, como por exemplo
coreos0.
O coreos0, cabe ressaltar, é o servidor API e os todos os demais são workers.


Nesse repositório estamos colocando cada implementação desenvolvida. Estamos utilizando a seguinte estratégia de atuação:
docker compose ou Kubernetes.Utilizamos uma abordagem para armazenamento de estados e dados onde esses não são salvos na mesma estrutura onde roda o Kubernetes, e sim em uma estrutura de armazenamento centralizada. Os pods montam um armazenamento NFS e utilizam. A implementação do storage pode ser encontrada em cticsjeifsc/storage.
Podemos ver um exemplo a seguir de um volume persistente (PV):
apiVersion: v1
kind: PersistentVolume
metadata:
name: netbox-postgresql-base
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
server: storage1
path: /mnt/storage/storage/kubernetes/ifsc/sje/a/saas/srv/netbox/postgresql/base
A proposta básica é oferecer os serviços preferencialmente na modalidade SaaS com:
A grande maioria dos serviços aqui listados são baseados em HTTP. Para garantir que todos esses atenderão aos requisitos anteriores (independente de serem projetados para tal), existe um front-end distribuído (e escalável), o srv/nginx, de forma a padronizar o acesso.
O primeiro serviço migrado foi o netbox, que já estava rodando em container em uma VM. Pode ser encontrado em srv/netbox.
Implementamos o sharelatex. A implementação está em srv/sharelatex.
Finalizamos a implementação do Rocket.chat e utilizaremos ele em substituição do Slack, assim poderemos estar testando a estabilidade do kubernetes. O acesso é feito com o usuário do LDAP, tanto para alunos quando para Servidores. Implementação srv/rocketchat.
O Nextcloud é um serviço Open Source de armazenamento e sincronização de arquivos privados, similar ao Dropbox (proprietário). O acesso é feito com o usuário do LDAP, tanto para alunos quando para Servidores. Implementação do Nextcloud srv/nextcloud.
O Onlyoffice Document Server é uma suíte de escritório on-line composta de visualizadores e editores de textos, planilhas e apresentações, totalmente compatível com os formatos Office Open XML: .docx, .xlsx, .pptx e habilitando a edição colaborativa em tempo real. O acesso ao Onlyoffice Document Server é feito pelo Nextcloud. Implementação do OnlyofficeDocumentServer srv/onlyoffice.
WordPress é um aplicativo de sistema de gerenciamento de conteúdo para web, escrito em PHP com banco de dados MySQL, voltado principalmente para a criação de sites e blogs via web. Implementação do Wordpress srv/wordpress.
Utilizada a imagem images/openldap para base de usuários.
MATLAB trata-se de um software interativo de alta performance voltado para o cálculo numérico. Utilizada a imagem images/matlab para execução remota da aplicação via SSH.
ssh -XC [email protected] -p 2222
GNU Octave é uma linguagem de alto nível, principalmente destinada a computação numérica. Ele fornece uma conveniente interface de linha de comando para resolver problemas numericamente lineares e não-lineares. Utilizada a imagem images/octave para execução remota da aplicação via SSH.
ssh -XC [email protected] -p 2223
NyqLab é um software educacional que visa ajudar os alunos a aprender e praticar conceitos básicos em sistemas de comunicação analógicos e digitais. Utilizada a imagem images/nyqlab para execução remota da aplicação via SSH.
ssh -XC [email protected] -p 2225
Utilizada a implementação Mosquitto para MQTT Broker.
Para o serviço, que por enquanto opera apenas com protocolos MQTT v3.1 e v3.1.1, foi criada uma imagem images/mosquitto.
Content type
Image
Digest
Size
178.5 MB
Last updated
about 9 years ago
docker pull souzagaabriel/matlab