[Reposted] 40 dias de 14 atualizações de versão principais, prática de tecnologia de contêiner em larga escala por trás da conferência Tencent

40 dias 14 atualizações de versão principais, prática de tecnologia de contêiner em larga escala por trás da conferência Tencent 

https: // my.oschina.net/jxcdwangtao/blog/3197014

 

Devido ao impacto da epidemia da Nova Pneumonia Coronariana no Festival da Primavera, os aplicativos de escritório on-line rapidamente se tornaram populares.Como um produto de escritório on-line em nível empresarial, a Tencent Conference foi rapidamente reconhecida pelos usuários. Ao mesmo tempo em que o número de usuários está explodindo, a empresa também está atualizando iterativamente a alta velocidade, completando a atualização de 14 versões principais em 40 dias e organizando um caso clássico de pequenas etapas e iteração rápida. Este artigo começará da perspectiva do contêiner e mostrará como a conferência Tencent se baseia no TKE do serviço de contêiner em nuvem da Tencent.Com a capacidade de back-end atingindo 1 milhão de núcleos, a tecnologia nativa da nuvem por trás da rápida iteração da versão.

Como um produto essencial para produtos de nível empresarial, o Tencent Meeting tem requisitos muito altos de disponibilidade e estabilidade do produto.Qualquer serviço instável pode resultar na impossibilidade de o usuário acessar a reunião, interrupção da reunião ou má qualidade de áudio e vídeo, resultando em reclamações do usuário. Afetar a reputação do produto e reduzir a confiança do usuário.

Ao mesmo tempo, o número de usuários está explodindo, o que exige recursos de back-end para acompanhar o ritmo de crescimento do usuário em tempo real, o que tem requisitos muito altos para a pontualidade da expansão da capacidade. Além disso, no processo de operação do serviço, o produto terá inevitavelmente atualizações iterativas, como otimização de funções e correções de erros.Para torná-lo transparente para atualizar usuários, a plataforma é necessária para dar suporte eficiente e controlável ao lançamento e atualização de programas de negócios.

Soluções

Para atender aos requisitos do cenário de negócios acima, o Tencent Cloud Container Service ( TKE ) é usado para dar suporte às reuniões da Tencent. Com a ajuda dos recursos de roteamento dinâmico, rede fixa, escalabilidade elástica e atualização controlável da TKE , ele carrega perfeitamente a implantação e operação de serviços de alto crescimento durante o surto de conferências da Tencent, educação on-line e salas de aula aéreas. A arquitetura da plataforma de gerenciamento é a seguinte:

A plataforma de gerenciamento é baseada no serviço de implantação de cluster TKE, e algumas expansões de funções foram feitas com base nisso.A marca verde mostra os recursos realizados, a marca vermelha está em andamento e o cinza está planejado para ser implementado; o cluster TKE é baseado no Tencent Cloud CVM, CBS, CLB, VPC Com base nos recursos básicos, implante clusters k8s nativos da nuvem; por meio de operadores estendidos baseados em TKE, desde roteamento (CLB / L5 Controller), rede (Ipamd), gerenciamento de recursos (NodeResourceOversell, DynamicQuota), dimensionamento elástico (VPA, HPAPlus) A otimização de funções foi realizada em várias dimensões, o que tem apoiado bem a implantação e operação dos serviços auto-desenvolvidos da Tencent, como a Tencent Conference.

O modelo de implantação de negócios é o seguinte:

Os serviços aqui são implantados em três conjuntos de ambientes, correspondentes a três conjuntos de namespaces: teste, pré-lançamento e formal. Os serviços são implantados em vários modelos de microsserviços no espaço para nome. Cada conjunto de serviços inclui um conjunto de recursos de execução completos e independentes, como: carga de trabalho, serviço / entrada, configmap, segredo, pv / pvc, etc.

O nome completo do Tencent Cloud Container Service TKE em inglês é Tencent kubernetes Engine, conhecido como TKE , que visa fornecer aos usuários uma plataforma de gerenciamento de contêiner Kubernetes estável, segura, eficiente, flexível e fácil de usar. Baseado no kubernetes nativo, o TKE fornece um serviço de gerenciamento de contêiner, altamente escalável e de alto desempenho, centrado em contêiner. É totalmente compatível com a API nativa do kubernetes. Expande os plug-ins do kubernetes, como o disco rígido na nuvem do Tencent Cloud e balanceamento de carga, fornecendo implantação e Uma série de funções completas, como agendamento de recursos, descoberta de serviços e escala dinâmica, resolve os problemas de consistência ambiental do desenvolvimento, teste e operação e manutenção do usuário, aprimora a conveniência do gerenciamento de cluster de contêiner em larga escala e ajuda os usuários a reduzir custos e melhorar a eficiência.

Análise de solução específica

A seguir, será apresentado como o TKE do Tencent Cloud Container Service suporta a evolução dos negócios da Tencent Conference a partir de três aspectos de garantia de qualidade, eficiência e atualização controlável.

1. Garantia de qualidade

A estabilidade dos serviços de negócios determina diretamente a reputação do produto.Para garantir a qualidade do serviço das conferências e outros serviços da Tencent, a Tencent Cloud tomou medidas de garantia nas seguintes dimensões de roteamento dinâmico, detecção de anomalias, expansão paralela e migração de negócios:

1.1 Roteamento dinâmico

动态路由是基于腾讯自研的路由系统L5,通过在TKE集群内拓展service能力实现的L5-controller组件。L5-controller控制层面实现逻辑和通用controller类似,基本流程包括监听变更事件,触发回调,入队列;拉起worker,更新路由。

No entanto, para garantir a consistência do roteamento, os dois conjuntos de processos funcionais principal e auxiliar foram expandidos. Como mostrado na figura acima, os processos são marcados com setas laranja e verde, respectivamente. O processo principal garante a implementação efetiva e o processo auxiliar garante a consistência. Entre eles, o processo principal é acionado em tempo real ao ouvir eventos, e vários funcionários são executados simultaneamente para garantir a pontualidade das atualizações de roteamento e entrar em vigor em segundos. O processo auxiliar verifica em série o serviço no cluster, puxa os dados de configuração de roteamento correspondentes ao serviço e reconcilia os dados no sistema de roteamento L5, além de verificar se há lacunas.As configurações de roteamento que não estiverem no console central serão fortalecidas e consistentes. Detectado e substituído, eficaz no nível dos minutos. O nível de dados do controlador L5 pode garantir que as configurações de alteração entrem em vigor em segundos e a forte consistência seja implementada em minutos

1.2 Detecção de anomalias

Ofereça suporte à verificação de integridade do pod definido pelo usuário através dos seguintes recursos dos k8s nativos da nuvem, para garantir que o serviço seja isolado durante períodos anormais de tráfego

  • livenessProbe: Sonda de verificação de sobrevivência
  • readinessProbe: sonda de verificação de prontidão
  • postStart: especifique a ação a ser executada antes de o pod ser puxado normalmente
  • preStop: especifique a ação a ser executada antes da destruição do pod
  • terminationGracePeriodSeconds: tempo de espera pela finalização do pod

Através do uso dos vários recursos funcionais acima, combinados aos recursos de roteamento dinâmico, é possível obter alta estabilidade dos serviços de negócios.

1.3 Expansão paralela

Em um cenário massivo de usuários da Internet, como a Tencent Conference, é muito necessário entender a sensibilidade da expansão.O crescimento explosivo do tráfego em um curto período de tempo exige que o ritmo de expansão de backend seja capaz de acompanhar.Portanto, a Tencent Cloud possui dois grandes HPA baseados em nuvem A capacidade de expansão, uma é a quantidade de simultaneidade, executa o processo de detecção de expansão de capacidade em um modo de alta simultaneidade, a alta simultaneidade detecta ativamente a alta carga do negócio e aciona a expansão da capacidade em tempo real de acordo com a situação real; a segunda é o ciclo de cálculo, dando suporte ao usuário para definir o ciclo de cálculo de detecção O mínimo pode até atingir o segundo nível.Quando o processo de detecção encontra uma carga alta durante o ciclo de cálculo, pode desencadear a expansão em tempo real.

1.4 Migração de negócios

A migração de negócios é realizada principalmente através dos três modos a seguir:

implantação de leme: modo nativo da nuvem, uma configuração, distribuição de vários clusters, a vantagem é eficiente e gerenciável, a desvantagem é que é fácil ser diferente da configuração de operação de rede existente, resultando em não necessariamente completamente utilizável, fortemente dependente das especificações de implantação

Empacotamento e cópia de namespace: empacote todos os ns da empresa e todos os recursos sob os ns, copie e implante-os em outro cluster, tanto quanto possível, para garantir o ambiente de execução e a restauração da configuração dos negócios, a operação de uma chave foi implementada no console central, rápida e eficiente

Empacotamento e reutilização do espaço para nome: semelhante ao processo acima, há otimização de função que suporta ajustes de configuração definidos pelo usuário para reduzir os custos de operação do usuário

2. Eficiência

Durante a nova epidemia da coroa, a Tencent Conference foi bem reconhecida pela maioria dos usuários, os usuários explodiram e a eficiência da implantação do serviço foi a principal capacidade.Para promover a capacidade da plataforma de se adaptar rapidamente ao ritmo de crescimento do usuário, a Tencent Cloud da automação de processos, CI / CD Esforços foram feitos no gerenciamento de autenticação e na expansão flexível:

2.1 Automação

A automação é principalmente para melhorar a eficiência do processo.Processos de implementação específicos, como: construção de novos clusters, expansão da capacidade do cluster, inicialização do ambiente, distribuição de componentes, contam com a API da Tencent Cloud, implementam automaticamente a criação do cluster, nó de adição de cluster; , Instalação de ferramentas, formatação do sistema de arquivos, distribuição de componentes e outros processos, todos contam com o empacotamento de scripts e a execução de ferramentas; a integração do processo e das ferramentas do console central é implementada por meio de canais de plataforma, como: execução em lote Script, instalação em lote, registrando o console após criar um novo cluster, etc.

2.2 CI / CD

Os negócios internos da Tencent implantados no cluster TKE basicamente abriram o processo de CI / CD e suportam a implantação tandem em vários ambientes de rede.As conferências da Tencent foram implementadas através do modelo de CI / CD existente e do modelo de orquestração de serviços nativos da nuvem. Pouso eficiente da iteração de desenvolvimento, implantação, teste, inicialização e versão

2.3 Gerenciamento de autenticação

O CMDB, como modelo de gerenciamento de relacionamento para produtos, módulos de negócios e IP, é amplamente usado e reutilizado em muitos cenários de negócios da empresa. A implementação do CMDB Controller é basicamente semelhante à lógica geral do controlador, que inclui o monitoramento de eventos de alteração de pod do apiserver, acionando trabalhadores e trabalhadores correspondentes para consultar informações de cluster com base em retornos de chamada de eventos, consultando informações sobre produtos relacionados ao pod e finalmente aterrando o relacionamento com o sistema de serviço CMDB.

A sincronização em tempo real do CMDB fornece uma boa função auxiliar para a implementação de muitas funções de expansão personalizadas, como o seguinte processo de aplicativo de autenticação:

Conforme mostrado no diagrama do processo, por meio do modo init-container, o CMDB comercial é rapidamente sincronizado com a terra e está vinculado à nuvem de tecelagem interna da Tencent, L5 e outros sistemas, que podem abrir efetivamente o canal de autenticação, o que sempre causou dor de cabeça aos negócios. Suporte à implantação de serviços de negócios.

2.4 Expansão e contração elásticas

Para atender às necessidades dos principais cenários de negócios, como reuniões da Tencent, além do recurso VPA nativo da nuvem, o Tencent Cloud foi expandido com base no HPA nativo da nuvem e o implementou no modo Operador, extraindo o módulo de função HPA separadamente para suportar configurações de recursos personalizados de negócios Os recursos de expansão específicos incluem indicadores multicanais, oferecem suporte à coleta de indicadores multicanais através do servidor Metrics, Promethus, monitoramento de negócios etc., melhor compatibilidade com cenários de negócios

; Implementação paralela; detecção paralela de vários trabalhos de indicadores de negócios; escalonamento elástico do gatilho em tempo real para garantir a pontualidade; personalizado; suporte aos usuários para personalizar o limite de expansão e contração, ciclo de cálculo, coeficiente elástico. A estrutura funcional do indicador multicanal é a seguinte:

3. Atualização controlável

Para os usuários, a conferência Tencent é um cenário importante para solucionar a dificuldade de comunicação direta entre os usuários.Para proporcionar uma melhor experiência ao usuário, haverá mais ou menos iterações de otimização de função e correções de bugs durante a operação do produto. Sob o modelo nativo da nuvem, como garantir a confiabilidade e o controle das atualizações é particularmente importante. Com base nos recursos nativos da nuvem, o Tencent Cloud expandiu e otimizou os quatro aspectos a seguir: rede fixa, atualização leve, atualização em lote e garantia de capacidade, e percebeu a capacidade dos seguintes cenários:

3.1 Rede fixa

Rede fixa significa que o IP permanece inalterado após a destruição e a reconstrução do pod. Cenários como anomalias de pod e atualizações de versão da carga de trabalho etc. A rede fixa é um recurso muito reconhecido dos negócios auto-desenvolvidos da Tencent. Muitos serviços em segundo plano de negócios têm gerenciamento de autenticação baseado em IP , Mecanismo de lista branca e outras dependências funcionais, acredito que muitas empresas terão cenários semelhantes. O projeto da rede fixa é baseado em três principais módulos funcionais: Controlador IPAMD, TKE-ENI-AGENT, CNI:

  • O controlador IPAMD é executado na forma de um operador e é responsável pelo gerenciamento de alocação de IP, atualização do status dos recursos de rede e atualização de registro de associação de nós e pods, etc.
  • O TKE-ENI-AGENT é executado em cada nó no modo daemonset, responsável pela reconciliação de roteamento, gerando configuração cni, definindo o roteamento de política do nó e a pilha de rede do Pod
  • A CNI também é executada no nó e é responsável por implementar o roteamento da política do nó e a pilha de rede do Pod

O processo de implementação específico da rede fixa é como mostrado acima:

  1. O usuário iniciou a criação do statefulset
  2. O controlador IPAMD monitora a solicitação de criação através do mecanismo de observação de lista
  3. O IPAMD Controller usa o alocador de IP para alocar IP a todos os pods no novo conjunto de estado
  4. O IPAMD Controller gera a configuração de rede correspondente StaticIPConfig para cada pod e, em seguida, gerencia as atualizações de associação e status do pod e o IP atribuído no ciclo de vida após o conjunto de estado
  5. O alocador de IP é a função principal do controlador IPAMD, que determina que o pod atual é um novo aplicativo, destrói a reserva de reconstrução, exclui a recuperação e outros processos de acordo com as informações do pod e o status do statefulset e gera a configuração correspondente. Quando o statefulset for criado novamente, o alocador será equipado com novos O IP é fornecido ao pod. Quando o pod for destruído e reconstruído de maneira anormal, o alocador recuperará temporariamente o IP original. Após a conclusão da reconstrução, ele será reutilizado repetidamente. Quando o statefulset for excluído, todo o IP alocado será recuperado.
  6. Quando o pod é criado no nó, ele obtém a configuração de rede StaticIPConfig que o IPAMD gerou através do TKE-ENI-AGENT e solicita ao alocador de IP que implemente a configuração efetiva da rede do pod através do GRPC
  7. Após receber a solicitação TKE-ENI-AGENT, o alocador de IP obterá o IPConfig estático da configuração de rede do pod que foi alocada, em seguida, chame a Tencent Cloud Interface para criar a placa de rede elástica ENI de acordo com a configuração e, finalmente, gere a configuração CNI CNIInfo
  8. A CNI implementa o roteamento de política de nó e a pilha da rede de pod com base na configuração CNIInfo gerada pelo alocador de IP, e a rede de pod entra em vigor

3.2 Operador StatefulsetPlus

A implantação nativa da nuvem, StatefulSet e outros tipos de carga de trabalho não podem atender às necessidades da conferência Tencent e outros serviços, como: atualização leve, atualização em lote, garantia de capacidade etc., portanto, a Tencent Cloud desenvolveu um conjunto de Operadores baseado em StatefulSet para suportar novas cargas de trabalho O tipo é StatefulsetPlus, que herda todos os principais recursos do StatefulSet criados no Kubernete.A lógica da função principal é semelhante ao StatefulSet, mas os recursos de subdivisão são expandidos, como o IP fixo da instância do contêiner (Pod) e a atualização em escala de cinza em lotes do aplicativo. Melhor compatibilidade com o lançamento de aplicativos tradicionais e desvio automático do Pod quando o Nó é desconectado, suportando atualizações de contêineres no local. A arquitetura do aplicativo e os módulos funcionais do StatefulsetPlus Operator são os seguintes:

O StatefulsetPlus é implantado no modo CRD, que é parcialmente diferente do parâmetro yaml do Statefulset, e seu uso é basicamente o mesmo que o Statefulset

3.3 Atualização em lotes

Muitos serviços importantes, como o Tencent Meeting, exigem avanços absolutamente controláveis ​​ao atualizar e atualizar.A atualização em lote é baseada na expansão desse cenário.Também pode ser melhor compatível com o lançamento de aplicativos tradicionais.A atualização em lote está em uso real. O processo de evolução é o seguinte:

Para obter controlabilidade suficiente das atualizações em lote, é necessário especificar antecipadamente os lotes quando a atualização for iniciada. Cada processo subseqüente será acionado manualmente. Se uma atualização falhar, você poderá continuar após o reparo ou seguir diretamente o processo de reversão, em comparação com outras cargas de trabalho. A vantagem da função de atualização em lote do StatefulsetPlus é que os usuários podem configurar o conjunto de instâncias de cada lote.Por exemplo, os usuários podem atualizar temporariamente apenas as instâncias na área correspondente de acordo com a área de serviço do aplicativo. As instâncias especificadas de cada lote são atualizadas simultaneamente e a eficiência da atualização é alta.

Ao mesmo tempo, a atualização é mais segura e sem preocupações. Ele suporta aguardar a confirmação do usuário após a conclusão de cada lote e aciona a atualização do próximo lote de instâncias. Depois que o probe do aplicativo detecta automaticamente que a atualização foi bem-sucedida, ele automaticamente aciona a atualização do próximo lote de instâncias. Além disso, ele suporta dimensionamento manual, dimensionamento elástico com base em indicadores básicos (CPU, Mem, E / S de rede) e dimensionamento elástico com base em indicadores de monitoramento definidos pelo aplicativo.

Sumário

Atualmente, a tendência de acesso total à nuvem já é clara.A conferência da Tencent também aproveitou o boom da computação em nuvem para concluir rapidamente a rápida iteração da versão e a atualização perfeita das funções baseadas na tecnologia nativa da nuvem. Na transformação baseada em nuvem de todas as esferas da vida, a tecnologia de contêineres desempenha um papel vital. A Tencent está pesquisando tecnologias e serviços relacionados a contêineres há muito tempo. Muitos de seus negócios de sucesso, como jogos, WeChat e publicidade, optaram por rodar em tecnologia de contêineres.Pode-se dizer que a tecnologia de contêiner está apoiando bilhões de Usuários.

Com o vigoroso desenvolvimento do ecossistema de tecnologia nativa da nuvem, como seguidor de tecnologia, também espero que a tecnologia TKE do Tencent Cloud Container Service possa apoiar mais empresas a avançar orgulhosamente.

Acho que você gosta

Origin www.cnblogs.com/jinanxiaolaohu/p/12598770.html
Recomendado
Clasificación