Quero que o Kubernetes ache minhas imagens localmente não só no Docker Hub. Como faço isso?
Quero que o Kubernetes ache minhas imagens localmente não só no Docker Hub. Como faço isso?
O processo é mais complicado, isso porque o Minikube contém um Docker daemon integrado para rodar os containers. Para usar o Docker daemon do minikube, precisaríamos colocar no terminal:
eval $(minikube docker-env)
Agora que estamos usando o Docker daemon do Minikube podemos criar nossa imagem customizada. Por exemplo:
docker build -t minha-imagem:v1 .
No arquivo yaml de configuração do POD, coloque a imagem criada anteriormente, por exemplo "minha-imagem:v1". O Kubernetes por padrão irá tentar fazer o Download dessa imagem de um registro, é preciso desabilitar essa opção com imagePullPolicy: Never
. Segue exemplo de um arquivo de configuração do POD:
apiVersion: v1
kind: Pod
metadata:
name: aplicacao
spec:
containers:
- name: container-x
imagePullPolicy: Never
image: minha-imagem:v1
ports:
- containerPort: 80
Depois para voltar o docker daemon default:
1 - sudo usermod -aG docker $(whoami)
2 - Faça logout e login na máquina
3- sudo service docker start
Fiz o que você descreveu e o resultado foi este:
➜ kubernetes git:(feature/basic-structure) ✗ kubectl create -f aplication.yml
pod "minha-imagem" created
➜ kubernetes git:(feature/basic-structure) ✗ kubectl get pods
NAME READY STATUS RESTARTS AGE
minha-imagem 0/1 ErrImageNeverPull 0 3m
Pode recomendar alguma documentação ou referência para que eu possa fazer este procedimento localmente?
Olá,
Pelo status do erro (ErrImageNeverPull), parece que o Kubernetes não está encontrando a imagem localmente. Só para certificar, você chegou a trocar inicialmente a variável de ambiente para utilizar o docker daemon do Kubernetes e somente depois você construiu a imagem?
Se você colocar docker images, você consegue visualizar a imagem criada? Para confirmar se você está utilizando o docker daemon do Kubernetes, deverão aparecer no comando docker images imagens do google containers.
Estou encaminhando o link da documentação sobre essa parte de imagens: https://kubernetes.io/docs/concepts/containers/images/#updating-images
Abs