Índice
Dois, função e arquitetura do kubernetes
(2) Autocura (capacidade de autocura)
(7) Gerenciamento de chave e configuração
(8) Orquestração de armazenamento
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.2. Componente do nó (nó de trabalho)
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).