Instruções de uso
Simples aplicação utilizando node com linha de commando usando o módulo yargs.
- Build da imagem local
O container no cluster K8S, se for utilizar o minikube local, lembre-se que é necessário fazer o minikube enxergar as imagens buildadas localmente, no Windows pode-se utlizar no powershell o comando a seguir (doc oficial)
Se o minikube não conseguir chegar na imagem é provavel que os pods ao serem lançados ficaram com o status "ImagePullBackOff"
& minikube -p minikube docker-env --shell powershell | Invoke-Expression
docker build -t node-cli-sample .
- Rodar a imagem localmente
docker run --name node-cli-sample -d node-cli-sample
- Visualizar o log do container
docker logs -f node-cli-sample
- Verificar que o container não está mais ativo
docker ps
- Análise do arquivo kube/cronjob.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: node-cli-sample
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: node-cli-sample
image: node-cli-sample
imagePullPolicy: IfNotPresent
restartPolicy: OnFailure
spec.schedule: o crontab.guru ajuda nesse processo https://crontab.guru/
image: nome da imagem buildada localmente, no caso do kubernetes gerenciado, utilizar o endereço do container-registry
Sempre que necessário incluir o atributo concurrencyPolicy como Forbid para impedir que um job possa ser criado enquanto outro ainda estiver em execuçao, mais detalhes em Cronjobs K8S
- Aplicar o cronjob.yaml
kubectl apply -f kube/cronjob.yaml
- Visualizar o cronjob.yml
kubectl get cronjob
Obs: para observar a criação dos job ativos, pode usar 'kubectl get cronjob --watch'
- Observar os container criados:
kubectl get pods
- Observar os logs criados nos pods
kubectl logs -f node-cli-sample-XXXXX