É conhecido que quando falamos sobre infraestrutura de microsserviços ou de sistemas distribuídos de alta performance, escalabilidade e alta disponibilidade, logo pensamos no Kubernetes para essa função. Geralmente, quando o desenvolvedor back ou front entra em um time com um projeto ou alguns projetos entregues, essa infraestrutura já foi criada e ele não participa da instalação e configuração da ferramenta. Isso dificulta para que esse profissional conheça essa parte “operacional” do fluxo e ele limita-se à utilização e deploy nessa infraestrutura.
Mas e se o desenvolvedor quer configurar do zero o Kubernetes? Para isso, existem algumas soluções de configuração fácil de um ambiente Kubernetes. Existem algumas soluções no mercado como o minikube, k3s, kind e microk8s e cada uma com as suas especificidades, conforme tabela abaixo:
Com essas informações, a ideia deste artigo é orientar a instalação e o primeiro deploy de uma aplicação na ferramenta Microk8s. Para isso vamos utilizar o sistema operacional Linux.
O que é MicroK8s?
O MicroK8s, como o próprio nome diz, é um “micro” cluster do Kubernetes (saiba mais sobre o Kubernetes), ou seja, ele é utilizado como um cluster mínimo para subir componentes conteinerizados em produção. Esse sistema é de código aberto e fornece as principais funcionalidades do Kubernetes em um único nó, ou até mesmo um cluster de produção e de alta disponibilidade.
Ele também reduz os recursos, podendo ser utilizado para:
– transformar o Kubernetes em uma ferramenta de desenvolvimento leve
– disponibilizar o Kubernetes para uso em ambientes mínimos, como o GitHub CI
– adaptar o Kubernetes para aplicativos IoT de pequenos dispositivos
Instalação
Pré-requisitos:
– Instalação da ferramenta snapd.
1. Instalação do microk8s com o comando
$ sudo snap install microk8s --classic microk8s (1.26/stable) v1.26.1 from Canonical✓ installed
2. Junte-se ao grupo
O MicroK8s cria um grupo para permitir o uso contínuo de comandos que exigem privilégio de administrador. Para adicionar seu usuário atual ao grupo e obter acesso ao diretório de cache .kube, execute os dois comandos a seguir:
sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube #Você também precisará entrar novamente na sessão para que a atualização do grupo ocorra: su - $USER
3. Iniciando e Parando o MicroK8s
a. O MicroK8s continuará em execução até que você decida interrompê-lo. Você pode parar e iniciar o MicroK8s com estes comandos simples:
microk8s stop
b. interromperá o MicroK8s e seus serviços. Você pode começar novamente a qualquer momento executando:
microk8s start
4. Verifique o estado
O MicroK8s possui um comando integrado para exibir seu status. Durante a instalação, você pode usar o –wait-ready sinalizador para aguardar a inicialização dos serviços do Kubernetes:
microk8s status --wait-ready
5. Acessar o Kubernetes
O MicroK8s inclui sua própria versão kubectl para acessar o Kubernetes. Use-o para executar comandos para monitorar e controlar seu Kubernetes. Por exemplo, para visualizar seu nó:
microk8s kubectl get nodes #ou para ver os serviços em execução: microk8s kubectl get services
Observe que, se você deixar o MicroK8s em execução, ele será reiniciado automaticamente após uma reinicialização. Se você não quiser que isso aconteça, simplesmente lembre-se de executar microk8s stop antes de desligar.
Utilizando Complementos
O próprio microk8s fornece alguns complementos para serem utilizados juntamente com ele, para habilitar esses componentes basta usar o comando
# exemplo para habilitar complementos microk8s enable dashboard dns registry istio # para mais infos microk8s enable --help # para desabilitar microk8s disable <nome complemento>
Veja a listagem completa dos complementos.
Construindo ou inserindo uma imagem
Agora que seu microk8s está configurado da forma correta, basta fazer o deploy da sua imagem baixar um cointaner de um registry.
Existem alguns jeitos para colocar uma imagem dentro do microk8s, são eles:
– Usando imagens locais
– Utilizando um registry público
– Usando um registry privado
– Usando um registry integrado
Neste artigo iremos abordar como utilizar imagens locais sem um registry, para isso vamo usar o seguinte Dockerfile de exemplo:
FROM nginx
Após criar esse docker file, basta executar o comando:
docker build . -t mynginx:local
Isso gerará uma imagem nova chamada mynginx:local.
Após a construção da imagem, podemos recuperar essa imagem e transferir ao microk8s, para tal, precisamos extrair a imagem do docker e criar um arquivo .tar, com o seguinte comando:
docker save mynginx > myimage.tar
Fazendo isso, ele gerará um arquivo myimage.tar que iremos transfierir com o comando ctr image import para o microk8s, confome abaixo:
microk8s ctr image import myimage.tar
PS: lembre de sempre fazer os comandos na mesma pasta para ele achar o arquivo.
Dessa forma, podemos então verificar se a imagem está de fato no microk8s:
microk8s ctr images ls
Implantando a Nossa App
Agora que conseguimos instalar e colocar a nossa app dentro do microk8s, chegou a hora de fazer o deploy dessa app.
Para isso, primeiro verificamos com o comando ctr images ls para checar se nossa imagem está lá:
microk8s ctr images ls
Após isso, vamos utilizar o comando apply -f para implantar um Deployment (para dúvidas consulte a documentação do kubernetes). Criamos o arquivo my-deploy.yml conforme conteúdo abaixo:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: mynginx:local
imagePullPolicy: Never
ports:
- containerPort: 80
Execute o comando:
microk8s kubectl apply -f my-deploy.yml
Pronto, o microk8s implantará sua imagem conforme a especificação do arquivo yml criado.
Para verificar se ela realmente está no ar utilize kubectl get deployments
Conclusão
Para os desenvolvedores iniciantes, o microk8s acaba sendo uma opção interessante para o aprendizado devido à sua fácil configuração e utilização. Isso comparado com os seus concorrentes como o minikube. A documentação da plataforma também é bem rica e a comunidade de desenvolvedores da plataforma costuma responder os issues abertos.
Referências:
MicroK8s
Bellsoft
A deposit cap is a spending decision made in advance and then enforced by the site rather than by willpower. Licensed operators are required to offer them across daily, weekly and monthly windows. Setting one takes under a minute and applies from the moment it is confirmed.
How Deposit Limits Take Effect
Limits stack rather than replace each other, and the tightest applicable cap is the one that binds. Anyone comparing these controls can Casino Smash and check the cooling period each site applies to increases. That asymmetry is intentional: lowering a limit protects instantly, while raising one is delayed by twenty four hours or longer so the decision is not made in the moment.
| Change | When It Applies |
|---|---|
| Lowering a limit | Immediately on confirmation |
| Raising a limit | After a cooling period |
| Removing a limit | Usually the longest delay |
- Set a limit when the account opens rather than later
- Check the cooling period before assuming a change is active
A deposit limit is most useful when it reflects an amount that would not be missed, decided at a calm moment rather than during a session. Because increases are delayed, the cap holds precisely when it matters most. Reviewing the figure occasionally keeps it honest without undermining the protection.
