[Cloud Native] Ferramenta de orquestração de contêineres Kubernetes

Índice

1. Introdução ao K8S

Endereço do site oficial:

1.1 Comparação entre orquestração docker e orquestração k8s

1.2 Recursos

1.3 Função

2. Componentes importantes do K8S

2.1 Componentes principais

(1) Era um apiserver

(2) Gerenciador de controlador Kube

(3) Agendador Kube

(4) Nó

①kubelet

②kube-proxy

③janela de encaixe

(5) etc.

2.2 Princípio de funcionamento do Kubernetes

3. Vagens

3.1 Controlador de pod

(1)Implantação

(2) Conjunto de Réplicas

(3) StatefulSet

(4)DaemonSe

(5)Job e CronJob

Quatro ou cinco seletores principais de gravadoras

4.1 Etiqueta (etiqueta)

4.2Serviço

(1) Três modos de programação de tráfego

4.3 Entrada

4.4Nome

(1) Recursos

4.5Namespace (seletor de namespace)


1. Introdução ao K8S

Kubernetes foi lançado em junho de 2014. É derivado do grego e significa "timoneiro" ou "navegador". Como o kubernetes tem 8 letras de k a s, ele é abreviado como k8s.

O Google adotou a conteinerização como sua infraestrutura há dez anos. Borg é o sistema interno de gerenciamento de cluster em grande escala do Google. O sistema borg não é de código aberto. Após a conteinerização em larga escala do docker, a fim de ocupar rapidamente o gerenciamento da conteinerização do docker, o Google desenvolveu um novo sistema de componentes Kubernetes usando a linguagem Go com base no conceito de design de borg, e o código-fonte aberto para CNCF.

Endereço do site oficial:

Endereço do site oficial do k8s: Documentação do Kubernetes | Kubernetes

Versão chinesa: https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/

1.1 Comparação entre orquestração docker e orquestração k8s

  • Uso independente, não é possível agrupar efetivamente
  • Os custos de gerenciamento aumentam à medida que aumenta a contagem de contêineres
  • Não existe um mecanismo eficaz de recuperação de desastres e autocura
  • Sem modelos de orquestração predefinidos, o agendamento rápido e em grande escala de contêineres não pode ser alcançado
  • Não existe uma ferramenta de centro de gerenciamento de configuração unificada
  • Nenhuma ferramenta de gerenciamento para o ciclo de vida do contêiner
  • Nenhuma ferramenta gráfica de gerenciamento de operação e manutenção

1.2 Recursos

 Dimensionamento elástico para executar serviços com custo mínimo

 Autocorreção e 
 liberação automática (modo de liberação de reversão padrão)
 gerenciamento centralizado de configuração e gerenciamento de chaves (as chaves são criptografadas)
 arranjo de armazenamento, suporte para armazenamento de plug-in e orquestração de recursos de armazenamento externo
 operação de processamento em lote
 fornece tarefas únicas, tarefas agendadas; Satisfaz os cenários de processamento e análise de dados em lote.

1.3 Função

Execute e gerencie contêineres entre máquinas em um cluster
para resolver o problema de comunicação entre contêineres entre máquinas docker.
O mecanismo de autocura do K8S faz com que o cluster de contêineres sempre execute no estado esperado pelo usuário

2. Componentes importantes do K8S

2.1 Componentes principais

(1) Era um apiserver

(2) Gerenciador de controlador Kube

Responsável por gerenciar diversos controladores, monitorar o status do cluster e executar automaticamente as ações correspondentes.

 

(3) Agendador Kube

Programe pods para execução em nós apropriados de acordo com requisitos de recursos e políticas de agendamento.

Estratégia de predicado (predicado)

estratégia preferida (prioridades)

(4) Nó

①kubelet

É executado em cada nó, é responsável por gerenciar o ciclo de vida do contêiner e do pod e se comunica com o servidor API.

②kube-proxy

Responsável por fornecer funções de proxy de rede e balanceamento de carga para Pods.

③janela de encaixe

Mecanismo de contêiner, executando contêineres, responsável pela criação e exclusão de contêineres nativos

(5) etc.

Um sistema distribuído de armazenamento de valor-chave para armazenar dados de configuração e estado do cluster.

Esses componentes principais trabalham juntos para realizar as principais funções do k8s, como organização de contêineres, expansão automática, descoberta de serviços e balanceamento de carga. Além disso, existem outros componentes auxiliares como serviço DNS (CoreDNS), coleta de logs (Fluentd), monitoramento (Prometheus), etc., que podem ser implantados de acordo com necessidades específicas.

2.2 Princípio de funcionamento do Kubernetes

O usuário envia uma solicitação por meio da ferramenta kubectl e se autentica no kube apiserver para criar uma solicitação de pod. O apiserver gravará as informações relevantes em etcd e, em seguida, o apiserver encontrará o gerenciador de controlador kube para criar o pod correspondente e o O controller-manager irá lê-lo no etcd através do apiserver Os dados procuram as informações do pod correspondente e, em seguida, o apiserver encontra o agendador para agendar o pod . Em relação ao local para onde o pod é transferido, o apiserver lê os dados no etcd para obter o relevante informações do nó e encontra o nó mais adequado para executar o pod.Finalmente, o agendador agenda a pré-seleção por meio do algoritmo Estratégia e estratégia de otimização , calcula em qual nó o pod deve ser programado para execução e, em seguida, o agendador encontra o nó O componente kubelet no nó correspondente por meio do apiserver cria e mantém o pod por meio deste componente e o contêiner relacionado é criado por meio do docker. Então esses pods passam pelo proxy kubeAssociado para formar um cluster, o proxy kube usa recursos de serviço para expô-los usando um endereço IP unificado, e usuários externos podem usar esse endereço IP para pesquisar os serviços em execução no pod. O Kubelet monitorará quantos recursos estão em execução no nó, bem como o status e as informações relacionadas ao pod, e os enviará ao apiserver, que gravará as informações no etcd e as salvará. A manutenção do pod é feita pelo controlador-gerente. Quando o número de pods não atingir o número predefinido, ele criará o número predefinido correspondente para garantir o número total de pods.

3. Vagens

Um Pid pode conter vários contêineres, os contêineres em um Pid podem compartilhar recursos e os contêineres em Pids diferentes não podem acessar uns aos outros (por padrão).

 

3.1 Controlador de pod

(1)Implantação

Construído no ReplicaSet, ele fornece recursos de implantação de aplicativos de nível superior. Operações como atualização contínua e reversão de versão podem ser executadas facilmente.

(2) Conjunto de Réplicas

Usado para gerenciar o número de réplicas de pods, garantindo que o número especificado de pods esteja sempre em execução. Suporte para atualizações contínuas de aplicativos.

(3) StatefulSet

Usado para gerenciar aplicativos com estado, cada pod possui uma identidade exclusiva e uma identidade de rede estável. Adequado para aplicativos que exigem armazenamento persistente e implantação ordenada.

(4)DaemonSe

Certifique-se de que haja um controlador de pod em execução em cada nó. Adequado para executar daemons de nível de sistema em cada nó.

(5)Job e CronJob

Controlador para trabalhos em lote ou cron. Os pods são interrompidos automaticamente quando as tarefas são executadas.

Esses controladores gerenciam automaticamente o ciclo de vida dos pods de acordo com regras e políticas definidas pelo usuário, garantindo a operação normal e o dimensionamento dos aplicativos no cluster. Esses controladores permitem gerenciamento flexível de aplicativos e operações automatizadas.

Quatro ou cinco seletores principais de gravadoras

4.1 Etiqueta (etiqueta)

O Label Selector seleciona e filtra recursos com base em rótulos. Os rótulos estão na forma de pares de valores-chave e podem ser anexados a vários recursos do Kubernetes, como Pod, Serviço, Implantação, etc. Através do Label Selector, recursos específicos podem ser selecionados de acordo com regras de correspondência de rótulos.

4.2Serviço

Serviços são recursos do Kubernetes que expõem pods dentro de um aplicativo. Ele define um conjunto de pods logicamente relacionados e cria um endpoint de rede estável (Endpoint) para eles. Através do Serviço, pode ser disponibilizada uma entrada unificada para a aplicação, para que o cliente possa acessar o serviço do Pod backend. O serviço pode ser do tipo ClusterIP, NodePort, LoadBalancer ou ExternalName para diferentes métodos de acesso à rede.

(1) Três modos de programação de tráfego

espaço do usuário (obsoleto)

ipvs (recomendado, melhor desempenho)

Encaminhamento direto por endereço IP

Tabelas IP (à beira de obsoletas) (padrão)

Avançar de cima para baixo

4.3 Entrada

Ingress é um recurso do Kubernetes usado para direcionar o tráfego externo para serviços dentro do cluster. Ele atua como uma entrada de tráfego, definindo regras e rotas para determinar como encaminhar solicitações aos pods no serviço backend. O Ingress pode implementar balanceamento de carga, criptografia HTTPS/TLS, roteamento de URL e outras funções, fornecendo um nível mais alto de controle e gerenciamento de tráfego.

4.4Nome

Nome é um atributo de um recurso Kubernetes, usado para identificar o nome do recurso. Cada recurso deve ter um nome exclusivo. Por exemplo, todos os recursos, como pods, implantações e serviços, precisam receber um nome para serem referenciados e manipulados no cluster.

(1) Recursos

    versão da API
    tipo categoria
    metadados informações de metadados
    lista de especificações
    status status

4.5Namespace (seletor de namespace)

O Seletor de Namespace é usado para selecionar um namespace específico (Namespace). Namespace é um mecanismo para organizar e isolar recursos no Kubernetes. Os recursos no namespace necessário podem ser selecionados por meio do seletor de namespace.

Acho que você gosta

Origin blog.csdn.net/m0_71888825/article/details/132595655
Recomendado
Clasificación