Instalando MicroK8s
Neste tutorial, vamos aprender a instalar e configurar o MicroK8s, uma versão leve do Kubernetes, desenvolvido pela Canonical, no Ubuntu 20.04.
1. Overview
MicroK8s é uma distribuição do Kubernetes desenvolvida pela Canonical e projetada para oferecer simplicidade, eficiência e rapidez em ambientes de desenvolvimento, testes e IoT, ele se destaca pela sua facilidade de instalação e configuração mínima, tornando-o uma escolha ideal para cenários que demandam agilidade e baixo consumo de recursos.
O MicroK8s possui um ecossistema inclui dezenas de extensões que fornecem funcionalidades e recursos adicionais chamados Addons.
Veja a lista de Addons em: Addons
E também Como gerenciar Addons : Gerenciando Addons
2. Instalando e configurando o Microk8s
Neste tutorial vamos instalar o MicroK8s em uma máquina com Ubuntu 20.04 LTS, mas também é possivel instalar em outras distribuições linux que suportem snapd.
A instalação do Microk8s é simples e pode ser feita com os comandos abaixo:
1. Instalar o Microk8s
1
sudo snap install microk8s --classic
ou caso queira instalar uma versão especifica:
1
sudo snap install microk8s --classic --channel=1.30
2. Configurar o Grupo
Ao instalar o MicroK8s, um novo grupo chamado microk8s é criado para que sejam executados comandos que exigem permissões de administrador. Para adicionar seu usuário ao grupo microk8s, execute o seguinte comando:
1
2
3
sudo usermod -a -G microk8s $USER
mkdir -p ~/.kube
chmod 0700 ~/.kube
Agora é preciso reiniciar a sessão para que as alterações tenham efeito.
1
su - $USER
ou
1
newgrp microk8s
3. Verifique o status do cluster
1
microk8s status --wait-ready
a saida espera deve parecer com :
1
2
3
4
5
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
...
4. Acessando o cluster
Listando os nodes do cluster:
1
microk8s kubectl get nodes
1
2
NAME STATUS ROLES AGE VERSION
danilo-thinkpad-t480 Ready <none> 31d v1.29.4
Listando os Services do cluster:
1
microk8s kubectl get services
1
2
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.151.123.1 <none> 443/TCP 31d
Caso queira configurar um alias para o comando microk8s kubectl
execute o seguinte comando:
1
alias kubectl='microk8s kubectl'
Agora não é mais necessário digitar microk8s kubectl
para executar comandos kubectl, apenas kubectl
é suficiente.
5. Habilitando Addons
Após a instalação do Microk8s, é recomendado habilitar alguns addons, como DNS, para facilitar a comunicação entre os serviços.
1
microk8s enable dns
5. Habilitando Addon Dashboard
Com o microk8s também é possivel instalar o dashboard do kubernetes, para isso execute o seguinte comando:
1
microk8s enable dashboard
Para ver o status dos pods, services, deployments e replicaset execute o seguinte comando:
1
kubectl get all --all-namespaces
ou
1
microk8s kubectl get all --all-namespaces
Output
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
NAMESPACE NAME READY STATUS RESTARTS AGE
container-registry pod/registry-6c9fcc695f-crdlc 1/1 Running 72 (3h2m ago) 31d
kube-system pod/calico-kube-controllers-77bd7c5b-pgzm5 1/1 Running 77 (3h2m ago) 31d
kube-system pod/calico-node-2tl6k 1/1 Running 60 (3h2m ago) 31d
kube-system pod/coredns-864597b5fd-tf6pn 1/1 Running 72 (3h2m ago) 31d
kube-system pod/dashboard-metrics-scraper-5657497c4c-w8fzl 1/1 Running 73 (3h2m ago) 31d
kube-system pod/hostpath-provisioner-756cd956bc-s7rgr 1/1 Running 82 (3h2m ago) 31d
kube-system pod/kubernetes-dashboard-54b48fbf9-k27qr 1/1 Running 71 (3h2m ago) 31d
kube-system pod/metrics-server-848968bdcd-n6bjj 1/1 Running 71 (3h2m ago) 31d
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
container-registry service/registry NodePort 10.152.183.204 <none> 5000:32000/TCP 31d
default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 31d
kube-system service/dashboard-metrics-scraper ClusterIP 10.152.183.218 <none> 8000/TCP 31d
kube-system service/kube-dns ClusterIP 10.152.183.10 <none> 53/UDP,53/TCP,9153/TCP 31d
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.70 <none> 443/TCP 31d
kube-system service/metrics-server ClusterIP 10.152.183.240 <none> 443/TCP 31d
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/calico-node 1 1 1 1 1 kubernetes.io/os=linux 31d
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
container-registry deployment.apps/registry 1/1 1 1 31d
kube-system deployment.apps/calico-kube-controllers 1/1 1 1 31d
kube-system deployment.apps/coredns 1/1 1 1 31d
kube-system deployment.apps/dashboard-metrics-scraper 1/1 1 1 31d
kube-system deployment.apps/hostpath-provisioner 1/1 1 1 31d
kube-system deployment.apps/kubernetes-dashboard 1/1 1 1 31d
kube-system deployment.apps/metrics-server 1/1 1 1 31d
NAMESPACE NAME DESIRED CURRENT READY AGE
container-registry replicaset.apps/registry-6c9fcc695f 1 1 1 31d
kube-system replicaset.apps/calico-kube-controllers-77bd7c5b 1 1 1 31d
kube-system replicaset.apps/coredns-864597b5fd 1 1 1 31d
kube-system replicaset.apps/dashboard-metrics-scraper-5657497c4c 1 1 1 31d
kube-system replicaset.apps/hostpath-provisioner-756cd956bc 1 1 1 31d
kube-system replicaset.apps/kubernetes-dashboard-54b48fbf9 1 1 1 31d
kube-system replicaset.apps/metrics-server-848968bdcd 1 1 1 31d
Na linha 16 é possivel ver o serviço do dashboard service/kubernetes-dashboard
, o ip 10.152.183.70
e a
porta 443/TCP
.
1
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.70 <none> 443/TCP 31d
Para acessar o dashboard bastar acessar o endereço https://10.152.183.70:443
e acessar a tela de login.
Para obter o token de acesso ao dashboard execute o seguinte comando:
1
2
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token
Cole o token no campo de login e clique em Sign in
para acessar o dashboard.
Pronto, agora você tem um cluster Kubernetes rodando em sua máquina local. caso queira desligar o cluster execute o seguinte comando:
1
microk8s stop
Para iniciar o cluster novamente execute o seguinte comando:
1
microk8s start
3. Referências