Guia prático: Como instalar e usar o Kubernetes com Minikube
Kubernetes é um assunto muito falado hoje em dia, mas tão importante quanto saber fazer a instalação é saber fazer o uso efetivo da ferramenta, sendo assim, nesse post vou explicar como fazer o download do minikube, que é a versão do Kubernetes utilizado em ambientes de desenvolvimento e testes, com o objetivo de conhecer a tecnologia antes de implementar em produção.
Todos os comandos abaixo estou rodando no meu notebook que é um Ubuntu 18.04.
Instalando o Minikube:
sudo wget https://github.com/kubernetes/minikube/releases/download/v0.30.0/minikube-linux-amd64 -O /usr/local/bin/minikube sudo chmod +x /usr/local/bin/minikube
Instalando o comando Kubectl:
sudo wget https://storage.googleapis.com/kubernetes-release/release/v1.12.2/bin/linux/amd64/kubectl -O /usr/local/bin/ sudo chmod +x /usr/local/bin/kubectl
O comando kubectl serve para fazer a administração do seu cluster de kubernetes, nele que vamos gerenciar os namespaces, pods, ingress e etc.
Para iniciar o minikube digite o seguinte comando:
alisson@alisson-avell:~$ minikube start Starting local Kubernetes v1.10.0 cluster... Starting VM... Downloading Minikube ISO 170.78 MB / 170.78 MB [============================================] 100.00% 0s Getting VM IP address... Moving files into cluster... Downloading kubeadm v1.10.0 Downloading kubelet v1.10.0 Finished Downloading kubelet v1.10.0 Finished Downloading kubeadm v1.10.0 Setting up certs... Connecting to cluster... Setting up kubeconfig... Starting cluster components... Kubectl is now configured to use the cluster. Loading cached images from config file.
Lembrando que é necessário ter o VirtualBox instalado.
Agora que o minikube já iniciou, vamos ver o IP em que a máquina virtual está respondendo:
alisson@alisson-avell:~$ minikube status minikube: Running cluster: Running kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Veja que no meu caso é192.168.99.100, lembre-se que este IP pode mudar de máquina para máquina.
Ao iniciar o minikube, automaticamente ele configura o arquivo:
alisson@alisson-avell:~$ cat .kube/config apiVersion: v1 clusters: - cluster: certificate-authority: /home/alisson/.minikube/ca.crt server: https://192.168.99.100:8443 name: minikube contexts: - context: cluster: minikube user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /home/alisson/.minikube/client.crt client-key: /home/alisson/.minikube/client.key
Nesse arquivo temos o IP e os certificados para fazer a administração do cluster.
Vamos habilitar também o ingress para fazer com que o nosso minikube consiga responder por vários nomes no mesmo endereço IP:
alisson@alisson-avell:~$ minikube addons enable ingress ingress was successfully enabled
Para testar se a conectividade está correta, execute o seguinte comando:
alisson@alisson-avell:~$ kubectl get namespaces NAME STATUS AGE default Active 1h kube-public Active 1h kube-system Active 1h
Caso a saída seja parecida com a mostrada acima, está tudo ok.
Agora vamos criar um novo namespace:
alisson@alisson-avell:~$ kubectl create namespace alisson namespace "alisson" created
Agora com o namespace criado, vamos fazer um deploy de uma aplicação:
alisson@alisson-avell:~$ kubectl --namespace=alisson run python -ti --port=8080 --image=alissonmenezes/python_app:v1 -l app=python
O comando acima vai executar a aplicação a partir de uma imagem do dockerhub, chamada python_app, com a tag v1, no repositório alissonmenezes.
Para verificar se o deploy da aplicação foi realizado com sucesso, execute o seguinte comando:
alisson@alisson-avell:~$ kubectl --namespace=alisson get pods NAME READY STATUS RESTARTS AGE python-7889c7c88d-vtbw7 1/1 Running 0 1m
Agora vamos criar um service para apontar a porta 80 do kubernetes para a 8080 dessa aplicação:
alisson@alisson-avell:~$ kubectl --namespace=alisson create service clusterip python --tcp=80:8080 service "python" created
Agora precisamos fazer a criação do ingress, para apontar o nome: python.alissonmachado.com.br para essa aplicação em execução.
No caso do ingress, não temos um comando específico para fazer a criação dele, então vou criar um arquivo no formato yaml e executar o comando create.
arquivo: python__ingress.yml
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: python annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: python.alissonmachado.com.br http: paths: - path: / backend: serviceName: python servicePort: 80
Criando o ingress:
alisson@alisson-avell:~$ kubectl --namespace=alisson create -f python_ingress.yml ingress "python" created
Agora edite o /etc/hosts da sua máquina, colocando a seguinte entrada:
vim /etc/hosts 192.168.99.100 python.alissonmachado.com.br
E acesse no navegador: python.alissonmachado.com.br que já deve estar tudo funcionando =)
About author
Você pode gostar também
Curso de Segurança para Kubernetes: Amplie seus conhecimentos com a 4Linux
Olá para você que trabalha ou tem interesse na área de containers, a 4Linux acaba de criar um curso de segurança para Kubernetes. Acompanhe os tópicos que incluímos nesse novo
TDC 2019: 4Linux marca presença com palestras e coordenação de trilhas
Ministrando palestras ou coordenando trilhas, estaremos expondo nosso expertise em algumas áreas. Acontece em São Paulo entre os dias 16 e 20 de julho de 2019 o TDC ( The
Entenda o Git: O que é, como funciona e como começar a usar
GIT? O que é? Git é um sistema de controle de versões distribuído, ou seja, ele não precisa de um servidor central para funcionar. É uma ferramenta open source, criada