Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Workloads e Pods do Kubernetes

Você pode construir qualquer aplicativo conteinerizado complexo no Kubernetes usando dois conceitos básicos: pods e workloads. Depois de construir um aplicativo, você pode expô-lo para acesso, seja dentro do mesmo cluster ou na Internet, usando um terceiro conceito: serviços.

Pods

Pods são um ou mais contêineres que compartilham namespaces de rede e volumes de armazenamento. A maioria dos pods tem apenas um contêiner. Portanto, quando discutimos pods, o termo é frequentemente sinônimo de contêineres. Você escala pods da mesma forma que escala contêineres-- tendo várias instâncias do mesmo pod que implementam um serviço. Normalmente, os pods são escalados e gerenciados pelo workload.

Cargas de trabalho

Workloads são objetos que definem regras de implantação para pods. Com base nessas regras, o Kubernetes realiza a implantação e atualiza o workload com o estado atual do aplicativo. Os workloads permitem que você defina as regras para agendamento, escalonamento e fazer upgrade do aplicativo.

Tipos de Workload

O Kubernetes divide os workloads em diferentes tipos. Os tipos mais populares suportados pelo Kubernetes são:

  • Implantações

    Implantações são mais adequadas para aplicativos sem estado (ou seja, quando você não precisa manter o estado do workload). Os pods gerenciados por workloads de implantação são tratados como independentes e descartáveis. Se um pod encontrar uma interrupção, o Kubernetes o remove e, em seguida, o recria. Um exemplo de aplicativo seria um servidor web Nginx.

  • StatefulSets

    StatefulSets, em contraste com implantações, são mais adequados quando seu aplicativo precisa manter sua identidade e armazenar dados. Um aplicativo seria algo como Zookeeper-- um aplicativo que requer um banco de dados para armazenamento.

  • DaemonSets

    Daemonsets garante que cada nó no cluster execute uma cópia do pod. Para casos de uso onde você está coletando logs ou monitorando o desempenho do nó, esse workload semelhante a um daemon funciona melhor.

  • Jobs

    Jobs lançam um ou mais pods e garantem que um número especificado deles termine com sucesso. Os Jobs são mais adequados para executar uma tarefa finita até a conclusão, em vez de gerenciar um estado de aplicativo desejado em andamento.

  • CronJobs

    CronJobs são semelhantes aos jobs. CronJobs, no entanto, são executados até a conclusão de acordo com uma programação baseada em cron.

Serviços

Em muitos casos de uso, um workload deve ser ou:

  • Acessado por outros workloads no cluster.

  • Exposto ao mundo exterior.

Você pode alcançar esses objetivos criando um serviço. Os serviços são mapeados para os pods do workload subjacente usando uma abordagem de seletor/rótulo (veja os exemplos de código). A interface do Rancher simplifica esse processo de mapeamento criando automaticamente um serviço junto com o workload, usando a porta e o tipo de serviço que você selecionar.

Tipos de serviço

Existem vários tipos de serviços disponíveis no Rancher. As descrições abaixo são extraídas da Documentação do Kubernetes.

  • ClusterIP

    Expõe o serviço em um IP interno do cluster. Escolher este valor torna o serviço acessível apenas de dentro do cluster. Este é o padrão ServiceType.

  • NodePort

    Expõe o serviço no IP de cada nó em uma porta estática (a NodePort). Um serviço ClusterIP, para o qual o serviço NodePort irá rotear, é criado automaticamente. Você poderá contatar o serviço NodePort, de fora do cluster, solicitando <NodeIP>:<NodePort>.

  • LoadBalancer

    Expõe o serviço externamente usando o balanceador de carga de um provedor de nuvem. Os serviços NodePort e ClusterIP, para os quais o balanceador de carga externo irá rotear, são criados automaticamente.

Opções de Workload

Esta seção da documentação contém instruções para implantar workloads e usar opções de workload.