|
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 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, 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 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 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 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çoClusterIP, para o qual o serviçoNodePortirá rotear, é criado automaticamente. Você poderá contatar o serviçoNodePort, 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
NodePorteClusterIP, 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.