Kubernets Flashcards
O que é kubernets?
- Sistema de orquestração mais popular.
- Criado pela Google para gerir seus aplicativos internos.
- Estrutura organizada em ‘Objetos’ ou ‘Componentes’ do K8S.
- Implementação baseada em simples arquivos de texto (yaml).
- Solução ‘Open Source’ e suportada pelos provedores de Cloud.
Relembrando … o que é orquestração de Containers?
Conjunto de ferramentas e scripts para Automatizar:
- Implementação
- Gerenciamento
- escalonamento
- e as redes dos containers.
- Múltiplas Docker Host para executar Containers.
- Scale Up/Down automático.
- Gerenciamento de Config
- Recursos avançados de rede
- Armazenamento compartilhado.
- Load Balancing
- Segurança~
- COM UM ÚNICO COMANDO É POSSÍVEL IMPLEMENTAR CENTENAS/ MILHARES DE CONTAINERS.
Arquitetura do Kubernets- Os containers são executados nos …..
Nós ou Nodes
Arquitetura do Kubernets- O que são Clusters
Conjunto de Nós ou Nodes. Se um nó falhar a aplicação permanece online.
Como funciona um cluster K8s?
Nó Master - responsável por gerenciar o Cluster.
Nós workers - Responsáveis pela execução das aplicações.
Todos os nós precisam do Kubernetes instalado.
Kubernets - Principais componentes - API server:
permite interagir com Cluster k8s.
Kubernets - Principais componentes - Container Runtime:
software utilizado para execução dos containers (docker, containerid, cri-o, podman).
Kubernets - Principais componentes - kubelet:
agente do k8s que é executado nos nodes.
Kubernets - Principais componentes - controller:
gerencia quando um nó/container fica inativo.
Kubernets - Principais componentes - Scheduler:
distribui containers(réplicas) através de múltiplos Nodes (Pods -> Nodes).
Kubernets - Principais componentes - Etcd:
Banco de dados ‘chave:valor’ com as informações do Cluster.
Kubernets - Kubectl:
ferramenta de linha de comando do Kubernets, usado para deploy, gerenciar as aplicações, informações do cluster, status dos nós.
Minikube, o que é?
- É a maneira mais fácil de começar a usar o Kubernets.
- é um cluster Kubernets pré-configurado com um único nó.
- Possui todos os componentes do k8s prontos para uso.
Quais os 3 passos para utilização do minikube?
1) Container ou VM manager: Docker, Podman, VirtualBox, KVM, Hyper-V…
2) Kubectl: interage com o Cluster
3) MiniKube: download e deploy de uma imagem ISO do minikube.
Kubernets - Pods
É uma maneira de ter seus aplicativos em uma arquitetura pronta para futuras mudanças/escalonamento.
- Pod é uma instância da aplicação/solução.
- 1:1 - Relacionamento entre pod e container.
- Pod - Consegue abrigar um ou mais containers.
- Scale In/out: novos pods são criados/deletados.
- Novos pods em um mesmo ou em outro Node(capacidade).
Criando um pod
(imagem do google registry) kubectl run pod-name –image=gcr.io/kubeflow-images-public/nginx:latest
(imagem do Docker hub)
kubectl run pod-name –image=nginx
Replication controllers e replicaset.
. Replica é mais de uma instância/pod sendo executada ao mesmo tempo.
. Garante que o número especificado de réplicas necessários ainda esteja em execução! replicas=5
. O controle é feito através de monitoramento dos pods.
. Scalling, HA e Load Balancer!
. Replication Controllers(rc) está sendo substituido pelo Replicaset(rs).
k8s estratégias de Deployment:
Recreate
1° Destrói tudo
2° Cria tudo novo
k8s estratégias de Deployment:
Rolling Update
Upgrade incremental das Instâncias, uma por uma.
K8s utiliza os processos de ____________ e ____________ para fazer deploy e controlar novas/antigas versões.
Rollout / Versioning
Características do Cluster IP Service.
- Comunicação entre diferentes Pods(mesmo cluster).
- ‘Default’ Você pode omitir no arquivo de definição.
- Exclusivo para comunicação interna no cluster.
Características do Node Port Service.
NodePort escuta na porta do Node e encaminha a requisição na porta do Pod.
KinD
Kubernetes in Docker
Permite execução de um cluster do K8s de forma local, usando containers
Docker como nós.
Ao invés de um cluster composto por nós de VM’s, com o KinD o cluster ´
é composto por containers.
Implementando scale em replicaset
kubectl scale replicaset my-replicaset –replicas=6
Dimensione automaticamente a ReplicaSet (requer o servidor de métricas)
Aplique um Autoscaler de Pod Horizontal:
kubectl autoscale rs my-replicaset –min=3 –max=10 –cpu-percent=70
O Deployment encapsula
Replicaset
Pod
Container
Containers NÃO possuem IP, Pods SIM.
Correto. Só possuem portas.
Pra estabelecer comunicação com o container deve-se utilizar: endereço IP do Pod + Porta do Container
- Cada Pod possui seu próprio endereço IP.
- Pods se comunicam, localmente.
- Comunicação através de End. IP
Problema:
A todo momento Pods morrem e novos Pods(com novos IP’s) nascem.
Qual a solução?
Solução
Service [Ip Fixo, DNS, LB]
Tipos: ClusterIP, NodePort e LoadBalancer
No quesito Redes, quais os 3 serviços em Kubernets?
Cluster IP
Node Port
Load Balancer
Cluster IP
O que é?
Para que serve?
Como aplico?
Se relaciona com?
1) Um dos serviços de redes do Kubernets
2) Comunicação entre diferentes Pods - mesmo Cluster
Exclusivo para comunicação interna no Cluster
Dafault para comunicação de rede.
3) Arquivo yml
4) Pods, Containers e Comunicação
NodePort
1) O que é?
2) Para que serve?
3) Como aplico?
4) Se relaciona com?
1) Outro serviço de Redes do Kubernets
2) escutar na porta do Node e encaminhar a requisição na porta do Pod (Target Port).
Range de Portas: 30000 a 32767
3) Arquivo yml
4) Pods, containers, rede
Ingress
1) O que é?
2) Para que serve?
3) Como aplico?
4) Se relaciona com?
1) Recurso do K8s que expõe e gerencia acesso externo aos services,
através de rotas HTTP e HTTPS. É o entry point para o cluster.
2) Gerencia o controle do encaminhamento de tráfego a partir de Routing
Rules. Autua como um roteador inteligente.
3) Pre requisito
Ingress Controller:nginx, kong, traefic, Istio
É necessário instalar
4) Serviços de rede, comunicação externa
Kubernets - Volumes
1) O que é?
2) Para que serve?
3) Como aplico?
4) Se relaciona com?
1) Uma espécie de Storage no Kubernets
2) Solução para a volatilidade de dados/arquivos em containers
3) Um volume é externo ao POD, NODE, Cluster. Podem ser PV, PVC, e SC.
4) Armazenamento, Pods, Nods, Containers.