Olá Matheus, tudo bem?
Agradeço pelo feedback, fico muito contente em saber que você gostou do curso. Estou colocando abaixo as respostas das questões levantadas.
É possível fazer dentro do mesmo arquivo yaml configurações de diferentes objetos, por exemplo, eu posso ter um arquivo yaml com a configuração do objeto Deployment e também do objeto Service. No curso achei melhor separar cada objeto em seu arquivo para não ficar um arquivo muito extenso, podendo assim explicar os passos de configurações em diferentes aulas, acreditando assim que seria mais fácil a assimilação dos alunos. Para fazer essa configuração você separaria a parte do Deployment e do Service com ---
, parecido com o abaixo:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: aplicacao
spec:
replicas: 1
template:
metadata:
labels:
name: aplicacao-pod
spec:
containers:
- name: container-aplicacao-loja
image: rafanercessian/aplicacao-loja:v1
resources:
requests:
cpu: 40m
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: servico-aplicacao
spec:
type: LoadBalancer
ports:
- port: 80
selector:
name: aplicacao-pod
Com relação a porta o que acontece é o seguinte, quando configuramos o tipo de serviço para ser LoadBalancer,
ocorrerá o roteamento para uma porta chamada NodePort que o mestre do Kubernetes vai configurar por padrão em um range que varia de (30000-32767), para podermos acessar o serviço.
Para fazermos o update de uma imagem do container poderíamos utilizar o comando:
$ kubectl rolling-update NOME_PODS --image=IMAGE:TAG
Segue link da documentação explicando um pouco mais sobre esses detalhes: https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/
O Docker Swarm e o Kubernetes embora tenham a mesma finalidade de realizar orquestração tem algumas diferenças entre si, uma das principais diria que o Swarm fica limitada a API do Docker enquanto que o Kubernetes utiliza sua própria API. Estou encaminhando o link onde você poderá ver um comparativo mais detalhado e prós e contras das soluções: https://www.upcloud.com/blog/docker-swarm-vs-kubernetes/