1. Visão geral e arquitetura do Kubernetes

Índice

 

1. Introdução básica

Dois, função e arquitetura do kubernetes

2.1 Visão geral

2.2, função

(1) boxe automático

(2) Autocura (capacidade de autocura)

(3) Expansão horizontal

(4) Descoberta de Serviço

(5) Atualização contínua

(6) Reversão de versão

(7) Gerenciamento de chave e configuração

(8) Orquestração de armazenamento

(9) Processamento em lote

2.3, arquitetura de cluster k8s

Três, função de função de nó de arquitetura de cluster k8s

3.1. Componentes do plano de controle (nó mestre)

3.1.1, ser apiserver

3.1.2、etcd

3.1.3、kube-scheduler

3.1.4、kube-controller-manager

3.2. Componente do nó (nó de trabalho)

3.2.1, kubelet

3.2.2、ser um proxy

3.2.3、Tempo de Execução do Contêiner


1. Introdução básica

kubernetes, conhecido como K8s, é uma abreviação formada pela substituição dos 8 caracteres "ubernete" por 8. É um código aberto, usado para gerenciar aplicativos em contêineres em vários hosts na plataforma de nuvem . O objetivo do Kubernetes é tornar a implantação de aplicativos em contêineres simples e eficiente. O Kubernetes fornece um mecanismo para implantação, planejamento, atualização e manutenção de aplicativos.

O método de implantação de aplicativo tradicional é instalar o aplicativo por meio de plug-ins ou scripts. A desvantagem disso é que a operação, configuração, gerenciamento e todos os ciclos de vida do aplicativo estarão vinculados ao sistema operacional atual, o que não é propício para a operação de atualização/reversão de atualização do aplicativo, etc. também pode ser alcançado através da criação de uma máquina virtual Alguns recursos, mas a máquina virtual é muito pesada, o que não favorece a portabilidade.

O novo método é implementado pela implantação de contêineres. Cada contêiner é isolado um do outro e cada contêiner tem seu próprio sistema de arquivos. Os processos entre os contêineres não afetarão uns aos outros e os recursos de computação podem ser distinguidos . Em comparação com as máquinas virtuais, os contêineres podem ser implantados rapidamente. Como os contêineres são desacoplados das instalações subjacentes e dos sistemas de arquivos da máquina, eles podem ser migrados entre diferentes nuvens e sistemas operacionais de diferentes versões.

Os contêineres ocupam menos recursos e são mais rápidos de implantar. Cada aplicativo pode ser empacotado em uma imagem de contêiner. O relacionamento um-para-um entre cada aplicativo e o contêiner também torna os contêineres mais vantajosos. O uso de contêineres pode criar imagens de contêiner, porque cada aplicativo não precisam ser combinados com o restante da pilha de aplicativos e não dependem da infraestrutura do ambiente de produção, o que permite um ambiente consistente de P&D a testes e produção. Da mesma forma, os contêineres são mais leves e "transparentes" do que as máquinas virtuais, o que os torna mais fáceis de monitorar e gerenciar.

O Kubernetes é um mecanismo de orquestração de contêineres de código aberto do Google , que oferece suporte à implantação automatizada, escalabilidade em larga escala e gerenciamento de contêineres de aplicativos . Quando um aplicativo é implantado em um ambiente de produção, várias instâncias do aplicativo geralmente são implantadas para balancear a carga das solicitações do aplicativo. No Kubernetes, podemos criar vários contêineres, executar uma instância do aplicativo em cada contêiner e, em seguida, usar a estratégia de balanceamento de carga integrada para realizar o gerenciamento, a descoberta e o acesso a esse grupo de instâncias do aplicativo, e esses detalhes não requerem operação e pessoal de manutenção para executar configuração e processamento manuais complexos.

Dois, função e arquitetura do kubernetes

2.1 Visão geral

O Kubernetes é uma plataforma de código aberto leve e extensível para gerenciamento de aplicativos e serviços em contêineres. A implantação automática e o dimensionamento de aplicativos podem ser realizados por meio do Kubernetes. No Kubernetes, os contêineres que compõem um aplicativo são combinados em uma unidade lógica para facilitar o gerenciamento e a descoberta.

2.2, função

(1) boxe automático

Implantação automática de contêineres de aplicativos com base nos requisitos de configuração de recursos do ambiente operacional do aplicativo com base em contêineres

(2) Autocura (capacidade de autocura)

Quando um contêiner falha, ele é reiniciado. Quando houver um problema com o nó Node implantado, o contêiner será reimplantado e reagendado. Quando o contêiner falhar na verificação de monitoramento, o contêiner será desligado até que esteja funcionando normalmente e o serviço não será fornecido externamente

(3) Expansão horizontal

Aumente ou reduza os contêineres de aplicativos por meio de comandos simples, interface de interface do usuário ou com base no uso de recursos, como CPU

(4) Descoberta de Serviço

Os usuários podem realizar descoberta de serviço e balanceamento de carga com base nos próprios recursos do Kubernetes sem usar mecanismos adicionais de descoberta de serviço

(5) Atualização contínua

De acordo com as alterações do aplicativo, atualizações únicas ou em lote podem ser executadas nos aplicativos em execução no contêiner do aplicativo

(6) Reversão de versão

De acordo com a situação de implantação do aplicativo, a versão histórica do aplicativo em execução no contêiner do aplicativo pode ser revertida imediatamente

(7) Gerenciamento de chave e configuração

Sem a necessidade de recriar a imagem, as chaves e as configurações do aplicativo podem ser implantadas e atualizadas, semelhante à implantação a quente.

(8) Orquestração de armazenamento

A montagem e aplicação automática do sistema de armazenamento, especialmente para aplicativos com estado para obter persistência de dados, é muito importante. Os sistemas de armazenamento podem vir de diretórios locais, armazenamento em rede (NFS, Gluster, Ceph, etc.), serviços de armazenamento em nuvem pública

(9) Processamento em lote

Forneça tarefas únicas e tarefas agendadas; atenda aos cenários de processamento e análise de dados em lote.

2.3, arquitetura de cluster k8s

Três, função de função de nó de arquitetura de cluster k8s

Um componente k8s em execução normal incluirá os seguintes componentes:

Podem ser divididos em duas categorias: componentes do plano de controle e componentes do nó.

3.1. Componentes do plano de controle (nó mestre)

Os componentes do plano de controle tomam decisões globais para o cluster, como agendamento de recursos. Além de detectar e responder a eventos de cluster, como iniciar um novo pod quando o campo de réplicas de uma implantação não é atendido). O Master Node consiste em API Server, Scheduler, ClusterState Store (banco de dados ETCD) e Controller MangerServer.

3.1.1, ser apiserver

Responsável por expor a API do Kubernetes e lidar com o trabalho de aceitação de solicitações. O servidor de API é a entrada unificada do cluster, opera em um estilo repousante e é entregue ao etcd para armazenamento, enquanto fornece autenticação, autorização, controle de acesso, registro de API e mecanismos de descoberta.

3.1.2、etcd

Um armazenamento de valor-chave consistente e altamente disponível, usado como banco de dados de back-end para todos os dados de cluster do Kubernetes, usado para salvar dados relacionados no cluster.

3.1.3、kube-scheduler

O agendamento do nó é responsável por monitorar os pods recém-criados que não especificam um nó em execução (nó) e seleciona um nó para o pod executar.

3.1.4、kube-controller-manager

Responsável por executar o processo do controlador e lidar com tarefas rotineiras em segundo plano no cluster.Um recurso corresponde a um controlador. incluir:

  • Node Controller: Responsável por notificar e responder quando um nó falha.
  • Job Controller: monitora os objetos Job que representam tarefas únicas e, em seguida, cria Pods para executar essas tarefas até a conclusão
  • Controlador EndpointSlice: Preenche um objeto EndpointSlice (para fornecer links entre Serviços e Pods).
  • Controlador de conta de serviço (controlador ServiceAccount): crie uma conta de serviço padrão (ServiceAccount) para um novo namespace.

3.2. Componente do nó (nó de trabalho)

O componente do nó é executado em cada nó e é responsável por manter os pods em execução e fornecer o ambiente de tempo de execução do Kubernetes. O Worker Node consiste em kubelet, kube-proxy, etc.

3.2.1, kubelet

O kubelet será executado em todos os nós do cluster. Ele garante que todos os contêineres sejam executados em pods.

O kubelet recebe um conjunto de PodSpecs fornecido a ele por meio de vários mecanismos e garante que os contêineres descritos nesses PodSpecs estejam em execução e íntegros. O kubelet não irá gerenciar contêineres não criados pelo Kubernetes.

3.2.2、ser um proxy

kube-proxy é um proxy de rede em execução em cada nó (nó) do cluster e realiza parte do conceito de serviço Kubernetes (Serviço).

kube-proxy mantém algumas regras de rede nos nós que permitem a comunicação de rede com pods de sessões de rede dentro ou fora do cluster.

3.2.3、Tempo de Execução do Contêiner

O software responsável por executar o contêiner. O Kubernetes oferece suporte a muitos tempos de execução de contêiner, como containerd, CRI-O e qualquer outra implementação do Kubernetes CRI (Container Runtime Interface).

Acho que você gosta

Origin blog.csdn.net/Weixiaohuai/article/details/131661839
Recomendado
Clasificación