orquestrar workloads de produção em 2000 - Foi aprimorado ao longo de 15 anos de uso contínuo - Primeira versão open lançada em 2015 - Transformado em Open Source e agora é regido pela Cloud Native Computing Foundation, que é uma parte da The Linux Foundation - "Kubernetes" significa timoneiro (helmsman) que mantém o tema marítimo do Docker dando a ideia de que o Kubernetes é o capitão de um "navio de containers" - Escrito em GO
system for automating deployment, scaling and management of containerized applications." - Agrupa contêineres em unidades lógicas simples e de fácil gerência - Cria regras e monitoramentos de ambiente - Permite a integração e comunicação interna dos containers - Ecossistema para integração de containers - Clusters de máquinas
serviços - Um Scheduler - Uma API - Um controller - Um storage para manter o estado Kubernetes Master Scheduler Service API Server Node Controller State storage (etcd)
de um arquivo de configuração - Este arquivo está presente em ~/.kube/ e se chama "config" - Essencialmente é um arquivo YAML com chaves RSA e endereços - A interface CLI é o Kubectl Cluster Kubectl
existente - Volumes compartilhados - IP único para todas as apps - Contém informações sobre o estado desejado - Contexto compartilhado no mesmo Kubelet - Intimamente ligado ao Kubelet criado
aplicações que possuem estado - Mantém uma identificação única persistente - Útil para os casos de: - Apps com identificação única de rede - Armazenamento persistente (entre deploys) - Scale, remoção ou update ordenado
chaves TLS - Armazena credenciais do DockerHub - Pode armazenar senhas e outras informações - Base64 encoded - Pode ser criado manualmente ou a partir de arquivos - Definem um usuário gerenciado pelo cluster - É a identidade de um Pod - Kubernetes não possui objetos para usuários externos - Possuem o token estático de autenticação ou a referência a um secret para o certificado que permite acesso à API do master Service Account
a config do container - Objetos chave e valor - Podem ser criados por arquivos, diretórios ou manualmente - Um volume simples - Atua como storage de um pod - Persistente - Similar a um S3 - Precisa ser criado em duas partes - Persistent Volumes - Persistent Volume Claim Volume Claim
IP's do cluster só podem ser roteados pelo próprio cluster - IP's externos são bloqueados ou redirecionados para outro lugar - Provém acesso externo via domínio - SSL Internet Internet
por label (o único agrupador disponível) - Dizem como acessar o serviço - DNS - Endpoints - Políticas de acesso - Load balancer - Headless - IP fixo imutável para todos - Expõe um grupo de pods externamente
"Dockerfiles" - Permitem a criação de sistemas completos usando um único comando - Abstraem e descrevem tudo que deve rodar em um serviço - Funcionam com o Helm, um package manager do Kubernetes