Minikube é muito conhecido por permitir criar um cluster kubernetes local o que facilidade muito o desenvolvimento. Mas como utilizar ele com imagens Docker locais?
Como sabemos o kubernetes roda containers dentro dos pods e para isso ele precisa baixa as imagens Docker de algum registro (registry). O padrão para o Docker é o DockerHub, mas em desenvolvimento não queremos ficar toda hora dando push e pull de imagens para testar nossa aplicação. Nesse tutorial vamos ver como utilizar imagens Docker locais (localhost) no Minikube.
Utilizando VM Host como Docker host
Ja que o Minikube roda dentro de uma VM, essa VM é o lugar perfeito para armazenar as imagens Docker para nós. A primeira coisa a fazer e passar a utilizar o Docker daemon do Minikube invés do local, para fazer isso execute:
1
|
eval $(minikube docker-env) |
Note: Para voltar ao seu Docker daemon local basta executar o comando abaixo.
1
|
eval $(minikube docker-env -u) |
Pronto! Agora seu docker env é o Minikube, se executardocker images
por exemplo ira listar as imagens que estão dentro da VM e não as suas locais.
Agora qualquer imagem que voce fizer build local vai ficar dentro da VM invés do local da sua maquina possibilitando o kubernetes a fazer pull delas localmente.
Para utilizar a imagem depois de fazer build basta adicionar ao seu yml file, similar ao exemplo abaixo.
containers:
- name: node-app
image: node-app:latest