Expandindo verticalmente o SQL Server Online no Kubernetes

Este artigo analisa como um novo recurso no Kubernetes v1.33 facilita a expansão vertical do SQL Server online.

​​Vertically Scaling SQL Server Online in Kubernetes

Resumo

Kubernetes v1.33 has a new feature that enables you to resize CPU and memory resources for containers online without having to recreate the pod the container is running in.

image_pdfimage_print

Este artigo apareceu pela primeira vez no blog de Andrew Pruski. Ela foi republicada com o crédito e o consentimento do autor.

Um dos novos recursos do Kubernetes v1.33 é a capacidade de redimensionar recursos de CPU e memória para contêineres online, também conhecido como sem ter que recriar o pod no qual o contêiner está sendo executado. Antigamente, ao ajustar os recursos de um pod, o Kubernetes apagava o pod existente e criava um novo por meio de um controlador.

Embora não seja um problema para aplicativos que podem ter várias réplicas em execução, para o SQL Server, isso causaria uma interrupção, pois (geralmente) temos apenas um pod executando o SQL Server em um conjunto stateful. Vamos ver isso em ação.

Primeiro, implantaremos esse conjunto statefuls simples no Kubernetes: 

A parte importante aqui são as configurações de CPU e memória: 

Observação: Você deve ter notado que os limites e solicitações aqui têm o mesmo valor. Isso é para definir uma qualidade de serviço “garantida” para o pod… é uma prática recomendada para SQL Server em Kubernetes. Você pode encontrar mais informações neste artigo.

Vamos aplicar esse manifesto: 

No passado, tínhamos que editar nosso statefulset para aumentar esses valores: 

Isso recriaria o pod com os novos limites/solicitações: 

Mas agora, a partir do Kubernetes v1.33,podemos expandir pods sem reiniciar!