Contents

Descubra a eficiência do Managed Kubernetes com a nossa avaliação na OVHcloud!

e é fácil carregar idiomas adicionais individualmente

O Kubernetes, graças à sua notável escalabilidade e compatibilidade entre várias plataformas, emergiu como a solução preferida para gerenciar ambientes nativos da nuvem nos últimos tempos. A chave do seu sucesso reside na sua natureza e simplicidade de código aberto, permitindo aos utilizadores configurar facilmente configurações complexas sem esforço. A nossa equipa testou o serviço gerido Kubernetes da OVHcloud utilizando um cenário prático envolvendo o Whisper, um modelo de reconhecimento e transcrição de voz alimentado por IA desenvolvido pela OpenAI, para automatizar as nossas transcrições de entrevistas.

Como o Kubernetes funciona e por que é usado na nuvem

/images/Kubernetes_logo_600.jpg

As máquinas virtuais permitem aos usuários estabelecer plataformas de computação virtual que hospedam um sistema operacional idêntico aos encontrados em dispositivos físicos, sujeitos a limitações teóricas. Em contrapartida, os contêineres fornecem um ambiente confinado englobado pelo próprio sistema operacional, permitindo, por exemplo, execuções independentes de aplicações sem interferência umas das outras.

O benefício de adotar esta metodologia reside na sua versatilidade, pois os contêineres têm a capacidade de incorporar uma ampla gama de bibliotecas e aplicações além do que é suportado nativamente pelo sistema operacional host. Além disso, o estabelecimento de configurações consistentes permite a replicação em diversas plataformas, garantindo uniformidade independentemente de a aplicação estar sendo desenvolvida localmente ou implantada em uma infraestrutura baseada em nuvem. Essa consistência é crucial, pois garante que o aplicativo funcionará perfeitamente em todos os ambientes, desde o estágio de desenvolvimento até a implantação em produção.

O Kubernetes fornece uma abordagem simplificada para gerenciar contêineres, oferecendo recursos como balanceamento automático de carga e escalonamento dinâmico de instâncias de contêiner com base na demanda. Ao utilizar o mesmo ambiente de execução do Docker, os usuários têm acesso a uma vasta biblioteca de contêineres pré-construídos que podem aproveitar para implantar seus aplicativos com o mínimo de esforço.

De maneira semelhante ao Docker, pode-se utilizar arquivos YAML que aderem a uma sintaxe específica para delinear a configuração do contêiner.

o componente principal conhecido como “Plano de Controle Mestre”, que atua como coordenador central e representa a interface por meio da qual os usuários gerenciam as operações de contêineres; entidades separadas denominadas “Nós” ou “Trabalhadores”, onde os contêineres são executados com base nas diretrizes estabelecidas pelo Mestre; e “Volumes”, que oferecem espaço de armazenamento persistente para dados residentes nesses nós, desempenhando um papel crítico para garantir a longevidade dessas informações. Além disso, os balanceadores de carga são utilizados para distribuir a carga de trabalho uniformemente entre os recursos disponíveis, ao mesmo tempo que servem como gateways para o tráfego de entrada.

Uma característica crítica do Kubernetes envolve o estabelecimento de uma rede privada que interconecta todos os nós do cluster, permitindo a comunicação entre o nó mestre, os nós de trabalho e eles próprios para coordenar os cálculos. Por padrão, o acesso externo direto a aplicações executadas dentro de contêineres não está disponível, sendo necessária a implementação de tal acesso por meio de configurações definidas nos arquivos YAML. Os métodos comumente empregados incluem a utilização de balanceadores de carga, que distribuem uniformemente o tráfego de entrada entre vários nós.

A oferta gerida de Kubernetes na OVHcloud

/images/Kubernetes_OVHcloud_600.jpg

A OVHcloud oferece uma ampla gama de serviços dentro da sua infraestrutura de nuvem pública, incluindo a opção de utilizar Kubernetes como uma solução totalmente gerenciada. O conceito de “serviço gerido” está alinhado com “Plataforma como serviço”, indicando que a OVHcloud oferece um ambiente Kubernetes pré-configurado no qual cuida de todos os aspectos abaixo, como a manutenção e atualizações do sistema operacional host subjacente, a própria plataforma Kubernetes, rede componentes e recursos associados. Isto permite que os utilizadores se concentrem apenas nas suas aplicações executadas em Kubernetes, enquanto a OVHcloud trata do resto.

A incorporação do Plano Mestre de Controle é contabilizada no custo total, de modo que os gastos serão limitados a aspectos adicionais. No que diz respeito aos nós de trabalho, estes derivam da diversidade de opções que integram o portefólio da OVHcloud. Eles abrangem alternativas de uso geral que apresentam um equilíbrio louvável entre capacidade de memória, contagem de núcleos de CPU, alocação de armazenamento e desempenho de rede. Além disso, existem variantes dotadas de maior número de unidades de processamento, operando em frequências elevadas. Além disso, apresentamos opções com capacidades aumentadas de memória de acesso aleatório, configurações equipadas com unidades de processamento gráfico dedicadas, especialmente placas NVIDIA, destinadas a operações de inteligência artificial e, por fim, plataformas equipadas com um, dois ou quatro NVMe de última geração. unidades de estado sólido, cada uma abrangendo

Vale a pena mencionar que, no serviço OVHcloud, as instâncias de terceira geração (como b3 e c3) equipadas com processadores AMD normalmente possuem maiores quantidades de memória, maiores capacidades de armazenamento (normalmente com unidades do tipo NVMe para um melhor desempenho) e velocidades mais rápidas. recursos de rede, tudo a um custo aproximadamente 30% menor em comparação com seus modelos antecessores que utilizam processadores Intel.

Caso você precise de mais espaço de armazenamento além da capacidade pré-alocada dos nós, você também pode considerar a utilização de nossos serviços de armazenamento de objetos e armazenamento em blocos.

Para obter acesso aos aplicativos implantados nas configurações de produção, é importante reconhecer a importância da utilização de um balanceador de carga. Embora considerado um componente integrante, a utilização deste componente acarreta custos adicionais como parte de sua configuração básica. Apesar de ter um preço nominal inferior a um cêntimo por hora, continua a ser uma despesa necessária a ser cuidadosamente considerada.

A configuração padrão exige que cada nó possua um endereço IP exposto publicamente, permitindo assim a acessibilidade externa; alternativamente, pode-se estabelecer topologias de redes privadas para garantir medidas de segurança reforçadas.

Uma consideração adicional relativa ao preço também deve ser levada em conta. Ao estabelecer uma instância na OVHcloud, é fornecida uma tarifa mensal e horária. No entanto, estas taxas não são intercambiáveis, uma vez que as primeiras são substancialmente mais acessíveis em comparação com as últimas. Em muitos casos, a taxa mensal é aproximadamente metade ou até menor em custo. Consequentemente, a decisão sobre qual opção selecionar deve depender da utilização pretendida da plataforma.

Comece a usar Kubernetes na OVHcloud

Ao registrar nossa conta, navegamos até a aba “Public Cloud” e estabelecemos o projeto “Whisper”. Ao fazer isso, clicamos em “criar um cluster Kubernetes”, selecionando o data center Gravelines (França), Kubernetes versão 1.28, o tipo de instância desejado, o número de nós e o método de cobrança preferido (por hora ou mensal). Finalmente, atribuímos um nome ao cluster recém-criado.

/images/OVHcloud_pannello.jpg

Atendendo aos nossos requisitos, optamos por um tipo de instância com quatro núcleos de CPU, 15 GB de memória e 100 GB de capacidade de armazenamento. Além disso, esta configuração nos permite utilizar a variante “grande” do Whisper, de acordo com suas especificações documentadas, que necessita de aproximadamente 10 GB de RAM.

O processo de alocação dos recursos necessários para a nossa instância mostrou-se ágil, permitindo-nos começar a utilizá-la prontamente. No entanto, restava a tarefa de configurar nossas máquinas locais para interagir com o Kubernetes. Felizmente, o site oficial do projeto fornece orientações abrangentes sobre os procedimentos de instalação em vários sistemas operacionais, incluindo Linux, macOS e Windows. Como nosso sistema empregava um derivado do Ubuntu baseado em Linux, seguimos o conjunto de instruções correspondente.

Após a conclusão desse processo, adquirimos o arquivo de configuração kubeconfig.yml que facilitou nossa conexão com nosso cluster Kubernetes, conforme descrito no tutorial mencionado.

A rápida execução do processo serve como uma indicação notável da simplicidade envolvida no estabelecimento de uma aplicação dentro do domínio da infraestrutura de nuvem pública e destaca um dos principais fatores que contribuem para a sua popularidade e adoção generalizada.

Configure um contêiner com Whisper

O Whisper pode ser acessado sob uma licença de código aberto via GitHub, fornecendo aos usuários direitos de uso irrestritos. No entanto, sua implementação requer encapsulamento dentro de um contêiner Docker devido à exigência do Kubernetes de que todos os aplicativos sejam incluídos nesses contêineres antes de serem orquestrados e supervisionados.

Na mesma linha, pode-se criar seus próprios receptáculos através da utilização de Dockerfiles dentro do domínio do Docker, e da mesma forma, no domínio do Kubernetes, é possível gerar documentos YAML que encapsulam a configuração preferida, incorporando nele as especificações do referido documento.. Tal abordagem serve para facilitar a implantação de uma aplicação em múltiplos hosts com configurações uniformes, que é de fato o objetivo final desta tecnologia específica.

Optamos por utilizar uma solução existente fornecida na forma de um contêiner Docker pré-configurado desenvolvido por Ahmet Oner e acessível via Docker Hub sob o rótulo “OpenAI Whisper ASR Webservice”. Este contêiner não oferece apenas a funcionalidade do serviço Whisper, mas também inclui uma interface web amigável para uploads de arquivos convenientes e recuperação de transcrições.

Conseqüentemente, geramos o arquivo Whisper.yaml em nosso sistema local e incorporamos o código mencionado nele.

apiVersion: apps/v1kind: Deploymentmetadata:name:whisperappnamespace: defaultlabels:app:whisperappspec:selector: matchLabels:app: whisperappreplicas: 1template:metadata:labels:app:whisperappspec:containers:- name:whisperappimage:onerahmet/openai-whisper-asr-webserviceports:- containerPort: 9000name:whisperappvolumeMounts:- name: cachemountPath: /root/.cache/whisperargs: ["-e", "ASR_MODEL=medium", "-e", "ASR_ENGINE=openai_whisper"]volumes:- name: cacheemptyDir: {}---apiVersion: v1kind: Servicemetadata:name: whisperappsvcnamespace: defaultspec:selector: app: whisperapptype: LoadBalancerports:- name: whisperappsvcprotocol: TCPport: 9000targetPort: 9000

É importante reconhecer que nossa implementação inicial envolveu a definição de um Pod em vez de uma Implantação; lamentavelmente, esta abordagem não nos permitiu aceder ao serviço desejado. Felizmente, a assistência do apoio ao cliente da OVHcloud foi fundamental para a resolução do problema, levando-nos a adotar a configuração acima descrita, que funciona perfeitamente e sem quaisquer complicações.

De acordo com as diretrizes estabelecidas, um contêiner de entrada deve ser implementado para categorizar as solicitações recebidas de acordo com seus respectivos serviços. Embora esta abordagem possa parecer adequada para projetos mais complexos, devido à natureza da nossa aplicação de demonstração, optámos por adiar a sua implementação.

Sussurro em ação na OVHcloud

Para que nosso contêiner seja compatível com o Whisper, precisamos apenas utilizar o arquivo de configuração YAML gerado anteriormente.

**riccardo@Sleipnir ~/dev/OVH** $ kubectl apply -f whisper.ymldeployment.apps/whisperapp createdservice/whisperappsvc created

Parece que a aplicação foi adequadamente preparada para inspeção neste momento, e quaisquer ajustes ou modificações necessárias foram implementadas conforme necessário para garantir a sua funcionalidade e confiabilidade.

riccardo@Sleipnir ~/dev/OVH $ kubectl get deploymentsNAME READY UP-TO-DATE AVAILABLE AGEwhisperapp 0/1 10 80s

Ao receber uma notificação indicando que todas as instâncias estão prontas com status “1/1”, é possível acessar a aplicação desejada. Para atingir este objetivo, é necessário localizar o endereço IP acessível publicamente associado ao balanceador de carga, que é fornecido sob o rótulo “EXTERNAL-IP.

riccardo@Sleipnir ~/dev/OVH $ kubectl get servicesNAMETYPE CLUSTER-IPEXTERNAL-IPPORT(S)AGEkubernetesClusterIP10.3.0.1< none > 443/TCP71dwhisperappsvc LoadBalancer 10.3.82.133 1.2.3.4 	9000:30354/TCP 45h

Ao inserir o referido endereço IP em um navegador web, precedido de “:9000”, a página web é carregada com sucesso, permitindo assim o acesso à plataforma Whisper para utilização.

/images/Whisper_OVHcloud.png

Em apenas um breve período de tempo, o Whisper transcreve com sucesso nossas conversas, resultando em um resultado triunfante.

Para concluir

Na verdade, navegar pela nossa excursão com Kubernetes provou ser uma aventura esclarecedora. Embora já tivesse conhecido o Docker, o Kubernetes marcou o meu encontro inaugural não só com a sua plataforma, mas também com a ampla infraestrutura cloud da OVHcloud. O que me pareceu notável em todo o processo foi a facilidade com que conseguimos implantar o aplicativo, especialmente quando comparado com abordagens mais convencionais.

O objetivo desta declaração não é descartar as complexidades, que às vezes podem ser substanciais, associadas à utilização do Kubernetes (como o problema que encontrei em relação à discrepância entre implantação e pod), mas sim enfatizar a facilidade com que se pode conduzir experimente e obtenha conhecimento prático através desta plataforma. Para facilitar este processo, a documentação da OVHcloud é extremamente abrangente e lúcida na elucidação dos princípios subjacentes, servindo assim como um recurso indispensável para quem é iniciante tanto no Kubernetes como no mundo das nuvens públicas.

A criação de um cluster na infraestrutura pública da OVHcloud pode ser conseguida com um esforço mínimo através de um processo simples que necessita apenas de um pequeno número de cliques do rato. Além disso, a documentação fornecida esclarece efetivamente quaisquer procedimentos ambíguos para conveniência dos usuários. Como resultado, este provedor de serviços em nuvem criou com sucesso uma plataforma transparente e fácil de usar, colocando-se entre os hiperescaladores de primeira linha. Na nossa avaliação, consideramos a experiência global altamente favorável, uma vez que a OVHcloud se destacou na democratização do acesso à tecnologia Kubernetes para todos os utilizadores.

*️⃣ Link da fonte:

Nuvem pública OVHcloud, preços , registrou uma conta , documentação oficial , site oficial , este guia , Docker Hub , documentação ,