NESTA PÁGINA
Instalação de cRPD no Kubernetes
O Kubernetes é uma plataforma de código aberto para gerenciar cargas de trabalho e serviços conteinerizados. Os contêineres são uma boa maneira de empacotar e executar os aplicativos. Em um ambiente de produção, você precisa gerenciar os contêineres que executam os aplicativos e garantir que não haja tempo de inatividade. Por exemplo, se um contêiner cair, outro contêiner precisa começar. O Kubernetes oferece a você uma estrutura para executar sistemas distribuídos de maneira resiliente. O Kubernetes oferece uma plataforma para automação de implantação, escalabilidade e operações de contêineres de aplicativos em clusters de contêineres de host.
Pré-requisito
Instale Kubernetes no sistema Linux e também para implantar Kubernetes em um cluster Linux de dois nós, veja a instalação do Kubernetes.
Quando você implanta o Kubernetes, você tem um cluster. Um cluster kubernetes consiste em um conjunto de máquinas de trabalhadores, chamadas nós, que executam aplicativos conteinerizados. Cada cluster tem pelo menos um nó de trabalhador. O(s) nó(s) do trabalhador hospeda os pods que são os componentes do aplicativo.
Esta seção descreve as etapas para criar a imagem do cRPD Docker no Kubernetes.
Instalação de Kubernetes
Para instalar o Kubernetes:
Kubernetes Cluster
O Kubernetes coordena um cluster de computadores conectados para funcionar como uma única unidade. O Kubernetes automatiza a implantação e o agendamento do cRPD em um cluster de forma eficiente.
Um cluster Kubernetes consiste em dois tipos de recursos:
O principal coordena o cluster
Nós são os trabalhadores que executam aplicativos
O Principal é responsável pelo gerenciamento do cluster. O principal coordena todas as atividades em seu cluster, como agendar aplicativos, manter o estado desejado dos aplicativos, escalar aplicativos e implementar novas atualizações.
Um nó é um VM ou um computador físico que serve como uma máquina do trabalhador em um cluster Kubernetes. Cada nó tem um Kubelet, que é um agente para gerenciar o nó e se comunicar com o mestre do Kubernetes. O nó também deve ter ferramentas para lidar com operações de contêineres, como Docker ou rkt. Um cluster kubernetes que lida com o tráfego de produção deve ter um mínimo de três nós.
Quando você implanta cRPD no Kubernetes, as primárias iniciam os contêineres de aplicativos. O principal agenda os contêineres para serem executados nos nós do cluster. Os nós comunicam-se com as primárias usando a API do Kubernetes, que as primárias expõem. Os usuários finais também podem usar a API do Kubernetes diretamente para interagir com o cluster.
Um Pod funciona sempre em um nó. Um nó é uma máquina do trabalhador em Kubernetes e pode ser uma máquina virtual ou física, dependendo do cluster. Cada nó é gerenciado pelas primárias. Um nó pode ter vários pods, e o mestre kubernetes lida automaticamente com a programação dos pods em todos os Nós no cluster.
Todos os nós do Kubernetes são executados pelo menos:
Kubelet, um processo responsável pela comunicação entre o Mestre do Kubernetes e o Nó; gerencia os Pods e os contêineres em execução em uma máquina.
Um tempo de execução de contêiner (como Docker, rkt) responsável por retirar a imagem do contêiner de um registro, desempacotar o contêiner e executar o aplicativo.
Para criar um cluster minikube:
Baixar imagem do cRPD Docker
-
Antes de importar o software cRPD, certifique-se de que o Docker esteja instalado no host Linux e que o Docker Engine esteja sendo executado.
-
Certifique-se de se registrar no Suporte da Juniper antes de baixar o software cRPD.
Para baixar a imagem do docker:
Criação de um pod cRPD usando a implantação
Um Pod Kubernetes é um grupo de um ou mais contêineres, vinculados para fins de administração e rede. Uma implantação do Kubernetes verifica a integridade do seu Pod e reinicia o Contêiner do Pod se ele terminar. Implantações são a maneira recomendada de gerenciar a criação e a escala dos Pods.
Quando você descreve um estado desejado em uma Implantação, e o Controlador de Implantação muda o estado real para o estado desejado. Você pode definir implantações para criar novos ReplicaSets ou remover implantações existentes e adotar todos os seus recursos com novas implantações.
Criação de um pod cRPD usando YAML
Um Pod é a unidade básica de execução de um aplicativo Kubernetes — a unidade menor e mais simples do modelo de objetos Kubernetes que você cria ou implanta. Um Pod representa uma unidade de implantação: uma única instância de um aplicativo no Kubernetes, que pode consistir em um único contêiner ou um pequeno número de contêineres que estão fortemente acoplados e que compartilham recursos. Docker é o tempo de execução de contêiner mais comum usado em um Pod Kubernetes.
Você pode criar diretamente um Pod ou indiretamente usando um controlador em Kubernetes. Um controlador pode criar e gerenciar vários Pods. Os controladores usam um modelo de Pod que você fornece para criar os Pods. Os modelos de pod são especificações do pod que estão incluídas em outros objetos, como Controladores de replicação, Jobs e DaemonSets.
Para criar o pod cRPD usando o arquivo YAML
Cada Pod deve executar uma única instância de um determinado aplicativo. Se você quiser dimensionar seu aplicativo horizontalmente (por exemplo, executar várias instâncias), você deve usar vários Pods, um para cada instância. Em Kubernetes, isso é geralmente referido como replicação.
Veja também
Criação de um pod cRPD usando recurso de trabalho
Um trabalho cria um ou mais Pods e continuará a tentar novamente a execução dos Pods até que um número especificado deles termine com sucesso. Quando um número especificado de conclusões bem-sucedidas é alcançado, a tarefa é concluída. Você também pode usar um Trabalho para executar vários Pods em paralelo. Excluir um trabalho limpará os Pods que ele criou. A suspensão de um trabalho excluirá seus Pods ativos até que o Trabalho seja retomado novamente. Para criar o cRPD Pod usando o arquivo crpd_job.yaml:
Criação de um pod cRPD usando DaemonSet
A DaemonSet garante que todos (ou alguns) nós executem uma cópia de um Pod. À medida que os nós são adicionados ao cluster, os Pods são adicionados a eles. Como nós são removidos do cluster, esses Pods são lixo coletado. Excluir um DaemonSet limpará os Pods que ele criou.
Criação do pod cRPD usando o arquivo crpd_daemonset.yaml
Cada Pod deve executar uma única instância de um determinado aplicativo. Se você quiser dimensionar seu aplicativo horizontalmente (por exemplo, executar várias instâncias), você deve usar vários Pods, um para cada instância. Em Kubernetes, isso é geralmente referido como replicação.
Veja também
Expansão do cRPD
Você pode criar várias instâncias de cRPD com base na demanda usando o –replicas
parâmetro para o kubectl run
comando. A implantação é um objeto que pode possuir e gerenciar seus ReplicaSets.
Devemos ter um pod existente antes da expansão.
Para aumentar a escala:
Para reduzir a escala:
-
Execute o comando a seguir para reduzir o Serviço para 2 réplicas:
root@kubernetes-master:~# kubectl scale deployments crpdref --replicas=2
deployment.apps/crpdref scaled
-
Execute o seguinte comando para listar as implantações:
root@kubernetes-master:~# kubectl get deployments
-
Execute o comando a seguir para listar o número de Pods. Você pode ver que os 2 Pods foram encerrados:
root@kubernetes-master:~# kubectl get pods -o wide
Atualização contínua da implantação do cRPD
Você pode atualizar instâncias do Pod com novas versões. As atualizações de implantação permitem que a atualização das Implantações ocorra sem tempo de inatividade atualizando incrementalmente as instâncias de Pods com novas. Os novos Pods estão programados em Nós com recursos disponíveis. As atualizações de reversão promovem um aplicativo de um ambiente para outro com integração contínua e entrega contínua de aplicativos sem tempo de inatividade. No Kubernetes, as atualizações são versões e qualquer atualização de Implantação pode ser revertida para a versão estável anterior.
Atualizar a implantação do cRPD com uma nova imagem e preservar a configuração após a atualização:
Implantação do cRPD Pod com recursos alocados
Os pods fornecem dois tipos de recursos compartilhados, ou seja, redes e armazenamento para os contêineres. Quando contêineres em um Pod se comunicam com entidades fora do Pod, eles devem coordenar como usam os recursos de rede compartilhados (como portas). Dentro de um Pod, os contêineres se comunicam usando localhost
um endereço IP e uma porta.
Os contêineres dentro do Pod veem o nome de host do sistema da mesma forma que o configurado name
para o Pod.
Qualquer contêiner em um Pod pode habilitar o modo privilegiado, usando a privileged
bandeira na especificação do contêiner. Isso é útil para contêineres que usam recursos administrativos do sistema operacional, como manipular a pilha de rede ou acessar dispositivos de hardware. Os processos dentro de um contêiner privilegiado recebem quase os mesmos privilégios que estão disponíveis para processos fora de um contêiner.
Para ver a implantação do Pod com recursos:
Implantação do cRPD Pod usando volume montado
Um emptyDir
é um dos vários tipos de volumes suportados no K8s e é criado pela primeira vez quando um Pod é atribuído a um nó, e existe enquanto esse Pod estiver sendo executado nesse nó. Como o nome diz, o emptyDir
volume está inicialmente vazio. Todos os contêineres no Pod podem ler e escrever os mesmos arquivos no emptyDir
volume, embora esse volume possa ser montado nos mesmos caminhos ou caminhos diferentes em cada contêiner. Quando um Pod é removido de um nó por qualquer motivo, os dados no emptyDir
é excluído permanentemente.
Para ver a implantação do cRPD Pod, montando o caminho de armazenamento em Kubernetes: