Download dos arquivos que serão usados para fazer o Deployment no K8S e criar o serviço do tipo NodePort (usaremos no minikube)
cd k8s-slackpage
Editar o arquivo deploy_fiap.yml para apontar para a imagem publicada na 1a aula (verificar em http://hub.docker.com)
DE : image: "tonanuvem/fiap_slackpage"
PARA: image: "USUARIO/fiap_slackpage"
Criar o Deployment:
kubectl create -f deploy_fiap.yml
Criar o Serviço:
kubectl create -f svc_fiap.yml
Verificar quais recursos foram criados:
kubectl get all
Abrir a página e testar
minikube service fiapslackpage
Realizando um deploy (Rolling Update) on the fly...
Editar o Deploy:
kubectl edit deployment fiapslackpage
Usar a imagem publicada pelo Vizinho
DE : image: "tonanuvem/fiap_slackpage"
PARA: image: "USUARIO_VIZINHO/fiap_slackpage"
Verificar a nova versão do Deployment que foi gerada, possibilitando um fácil rollback:
kubectl rollout history deployment/fiapslackpage
Realizar o rollback:
kubectl rollout undo deployment/fiapslackpage
Verificar novamente o histórico:
kubectl rollout history deployment/fiapslackpage
Link Exemplo StatefulSet : https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/
Exemplo: Sock Shop : A Microservice Demo Application
Link: https://github.com/microservices-demo/microservices-demo
Executar a stack:
kubectl create -f microservice-demo-weaveworks-socks.yaml
Verificar os serviços em execução no namespace sock-shop:
kubectl get svc -n sock-shop
Verificar todos os objetos do namespace sock-shop
kubectl get all -n sock-shop
Opção 2: Rodando com istio-inject
kubectl create ns sock-shop
kubectl label namespace sock-shop istio-injection=enabled --overwrite
kubectl get namespace -L istio-injection
kubectl apply -f https://tonanuvem.github.io/k8s-exemplos/demo-weaveworks-socks.yaml
Exemplo: Chat Websocket
kubectl create -f https://tonanuvem.github.io/k8s-exemplos/chat_deploy_svc.yml
Exemplo: Wordpress com BD Mysql
kubectl create -f https://tonanuvem.github.io/k8s-exemplos/wordpress_mysql.yaml
RUN ALL:
chmod +x run.sh; ./run.sh
RUN via comandos:
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-node --type=NodePort --port=8080
kubectl scale deploy hello-node --replicas=2
DEBUG:
kubectl run debug --image=k8s.gcr.io/busybox -it --rm --restart=Never -- sh
ping NOME_SERVICO
kubectl exec -ti NOME_POD_APP -- bash
curl localhost:PORTA
EXTRA:
Para verificar o significado dos campos no manifesto dos recursos K8S, pode-se usar o comando : kubectl explain
Exemplos:
kubectl explain deployment
kubectl explain deployment.metadata
kubectl explain deployment.spec
kubectl explain deployment.spec.replicas
kubectl explain deployment.spec.template.spec
kubectl explain deployment.spec.template.spec.containers
kubectl explain deployment.spec.template.spec.containers.image