Skip to content
This repository has been archived by the owner on Apr 3, 2023. It is now read-only.

Latest commit

 

History

History

kubernetes

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Opus kubernetes

Projeto da Opus Software para aprender um pouco mais sobre kubernetes

Tópicos de Estudo:

  • Kubernetes (conceito, pré-requisitos, componentes)
  • Kubernetes vs Docker (diferenças, em que casos é melhor utilizá-los)
  • Pods vs Container
  • Criação local do cluster kubernetes (exemplo: kind, minikube, etc) e uso do kubectl
  • Recursos (conceito e prática: comandos e aplicação de yaml)
    • Namespaces
    • Deployments
    • Daemonsets - conceito
    • Configmaps
    • Secrets
    • Services
    • Ingress
    • Persistência de dados (Storageclass - SC, Persistent Volume Claim - PVC, Persistent Volume - PV)
    • Job e Cronjobs - conceito
    • Statefulsets - conceito
    • HPA - conceito
    • RBAC (roles, service accounts, users) - conceito
    • CRD - conceito
  • Troubleshooting (describe, logs, events e exec)
  • Ambientes produtivos: setup de alta disponibilidade, scaling, quais cuidados tomar, etc
  • Uso do Helm para a instalação de pacotes

Pastas

A pasta ./pratical/final contém o projeto final desenvolvido A pasta ./presentation contém o pdf desenvolvido para explicar o projeto e a arquitetura do projeto

Setup

O sistema operacional utilizado é o EndeavourOS:

NAME=EndeavourOS
PRETTY_NAME=EndeavourOS
ID=endeavouros
ID_LIKE=arch
BUILD_ID=2022.08.28
ANSI_COLOR="38;2;23;147;209"
HOME_URL='https://endeavouros.com'
DOCUMENTATION_URL='https://discovery.endeavouros.com'
SUPPORT_URL='https://forum.endeavouros.com'
BUG_REPORT_URL='https://forum.endeavouros.com/c/arch-based-related-questions/bug-reports'
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=endeavouros

Foi usado o minikube em conjunto com o virtualbox para testar a aplicação localmente.

A versão do minikube:

minikube version: v1.28.0
commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f-dirty

Versão do kubectl:

WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.5", GitCommit:"804d6167111f6858541cef440ccc53887fbbc96a", GitTreeState:"archive", BuildDate:"2022-12-08T19:51:18Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"clean", BuildDate:"2022-10-12T10:49:09Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}

Sempre que inicializar os pods é preciso fazer o setup do servidor DNS (link

Já que o MariaDB não se da muito bem com o NFS, foi criado dois diretórios dentro do nó multinode-m05 /data/db-202{1,2}. (É preciso adicionar essas pastas sempre que o cluster for inicializado)

Foi criado um servidor NFS no endereço 192.168.0.20 na rede LAN

Reiniciar o cluster:

make clean && make setup && make start