-
Google Borg Container
-
Kubernetes - 2014
-
Cloud Native Computing Foundation
-
Kubernetes - Significado do nome
- Alusão a um navio cargueiro;
- Kubernetes ("Kuvernetes" - em Grego) Timoneiro, aquele que conduz o navio.
-
Logotipo K8s
- Logotipo com 7 malaguetas;
- Project Seven of Nine: Homenagem a personagem da série Star Trek: Voyager;
- Borg: Organismos ciberneticos de Star Trek;
-
O que é Kubernetes?
- Open-Source System;
- Container Orchestration System;
- Automação de Processos: Deplyment, Scaling e Gerenciamento;
- DevOps (Importante Ferramenta);
- K8S - Acronimo
-
Caracteristicas Kubernetes
- Imutabilidade;
- Substituição;
- Segurança contra indisponibilidade;
- Configuraçõa Declaração;
- Self-Healing System;
- Autoscale Up / Down
- Automação (DevOps Tool);
- Fault Protection;
- YAML / JSON Manifest files;
- Escala Declarativa;
- Cluster Scale Support;
- Service-based decoupling for teams;
- Separation of Responsibilities concept;
-
Infraestrutura Kubernetes
- Cloud Abstraction;
- Bare Metal (Servidores Fisicos);
- Virtual Machines;
- Kind Tool
- Raspberry Pi;
- AKS,GKE,AZURE; e etc ...;
-
Cluster Kubernetes
Um cluster Kubernetes consiste em um conjunto de servidores de processamento, chamados nós, que executam aplicações containerizadas. Todo cluster possui ao menos um servidor de processamento (worker node).
O(s) servidor(es) de processamento hospeda(m) os Pods (), que são componentes de uma aplicação. A camada de gerenciamento gerencia os nós de processamento e os Pods no cluster. Em ambientes de produção, a camada de gerenciamento geralmente executa em múltiplos computadores e um cluster geralmente executa múltiplos nós, fornecendo tolerância a falhas e alta disponibilidade.
- Master
- Node
- Pod
- kube-apiserver
- etcd (banco de dados - chave x valor)
- kube-scheduler
- kube-controller-manager
- cloud-controller-manager (Opcional)
- kubelet
- kube-proxy (Comunicação de rede)
- Agente de execução de contêiner (runtime)
Documentacão Oficial
Kubernetes Deployments - The Ultimate Guide
- Implantação
- Provisionameto
- Networking
- Dimensionamento
- Disponibilidade
Orquestradores Populares
- Kubernetes
- Docker Swarm
- Red Hat OpenShift
- Apache Mesos
- AWS ECS
- GCP GKE
- Criado para aprendizado;
- Local Kubernetes Cluster;
O Minikube é um dos métodos mais fáceis, flexíveis e populares para executar um cluster Kubernetes local tudo-em-um ou multi-nó, isolado por Máquinas Virtuais (VM) ou Contêineres, executado diretamente em nossas estações de trabalho. O Minikube é a ferramenta responsável pela instalação de componentes do Kubernetes, inicialização do cluster e desmontagem do cluster quando não for mais necessário. Ele inclui recursos adicionais destinados a facilitar a interação do usuário com o cluster Kubernetes, mas, mesmo assim, ele inicializa para nós um cluster Kubernetes totalmente funcional, não produtivo, extremamente conveniente para fins de aprendizado. O Minikube pode ser instalado em macOS, Windows e muitas distribuições Linux.
Documentacão Github
Documentação Oficial
kubectl
-
Open download folder
$ cd Download
-
Download kubectl
$ curl -LO https://dl.k8s.io/release/v1.24.2/bin/linux/amd64/kubectl
-
Install kubectl
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
-
Check installation
$ kubectl version --client --output=yaml
minikube (Local Kubernetes cluster)
-
Open download folder
$ cd Download
-
Download minikube
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.26.0/minikube-linux-amd64
-
Set permission
$ chmod +x minikube
-
Install minikube
$ sudo install minikube /usr/local/bin/
-
Configure user group
$ sudo usermod -aG docker $USER
-
Reboot Linux
$ sudo reboot
-
Initialization
$ minikube delete
$ minikube start
Minikube / Cli
minikube start
minikube stop
minikube status
Kubectl / Cli
kubectl get all
kubectl get pods -o wide
kubectl get replicasets
kubectl apply -f nome-do_arquivo.yaml
kubect create -f nome-do_arquivo.yaml
kubectl get pods --all-namespaces
kubectl delete pods "nome-do-pod"
kubectl delete pods "nome-do-arquivo.yml"
kubectl delete --all pods
watch kubectl get pods
kubectl rollout status
kubectl rollout history
kubectl rollout undo
kubectl rollout pause
kubectl rollout resume
kubectl describe
kubectl scale