Propostas Submetidas

DEI - FCTUC
Gerado a 2025-07-17 13:29:18 (Europe/Lisbon).
Voltar

Titulo Estágio

Um Operador Federado para Kubernetes

Áreas de especialidade

Engenharia de Software

Comunicações, Serviços e Infraestruturas

Local do Estágio

DEI-FCTUC

Enquadramento

A popularidade do Kubernetes (K8s) está a aumentar devido a vários motivos convincentes. Em primeiro lugar, houve um crescimento significativo na popularidade das aplicações em contentores. Os contentores oferecem inúmeras vantagens, como ambientes leves, portáteis e isolados, sendo ideais para implementar e gerir aplicações modernas. O Kubernetes fornece uma estrutura de orquestração robusta concebida especificamente para gerir aplicações em contentores, o que o torna uma escolha natural neste contexto.

Além disso, o Kubernetes oferece um cluster com um esquema de endereçamento de rede planar. Isto significa que, independentemente do número de nós no cluster, os pods em execução nesses nós têm endereços IP únicos e podem comunicar diretamente sem qualquer esquema NAT, simplificando assim a rede e a comunicação entre contentores e serviços dentro do cluster.

Outro benefício importante do Kubernetes é a sua natureza agnóstica em relação à tecnologia subjacente de cloud ou local. Isto permite que as organizações tirem partido do Kubernetes em diferentes fornecedores de infraestrutura ou em ambientes híbridos sem ficarem presas a uma plataforma específica. Oferece flexibilidade e portabilidade, permitindo às empresas escolher o ambiente de implementação mais adequado às suas necessidades.

Além disso, o Kubernetes permite que as grandes empresas partilhem recursos de forma eficiente entre equipas e aplicações através da utilização de namespaces e quotas de recursos. Isto permite uma alocação e isolamento eficazes de recursos, garantindo que cada equipa ou aplicação tem os seus recursos dedicados e, ao mesmo tempo, otimizando a utilização dos recursos em todo o cluster.

Por fim, o Kubernetes fornece mecanismos integrados para escalar aplicações verticalmente ou horizontalmente. Oferece funcionalidades como o dimensionamento automático com base na utilização de recursos ou métricas personalizadas, permitindo que as aplicações ajustem dinamicamente a sua capacidade com base nas exigências da carga de trabalho. Esta funcionalidade de escalabilidade garante a utilização ideal dos recursos e permite que as aplicações lidem com diferentes níveis de tráfego de forma eficiente.

Além destes benefícios, o Kubernetes também oferece características como autocorreção, atualizações contínuas, descoberta de serviços e balanceamento de carga, tornando-o uma plataforma abrangente para gerir aplicações em contentores à escala.

Um cluster Kubernetes localizado numa única região pode não ter tolerância a falhas, o que significa que é suscetível a falhas ou interrupções nessa região. Para lidar com esta limitação, os utilizadores têm a opção de aproveitar diversas regiões para aumentar a fiabilidade. No entanto, é importante considerar que diferentes fornecedores de cloud oferecem preços e níveis de desempenho variados. Duas abordagens possíveis para tirar partido de múltiplas regiões são:

1.º Crie um único cluster Kubernetes com nós implementados em várias regiões. Isto pode ser conseguido utilizando tecnologias como o Anthos, que permite a gestão de um cluster distribuído que abrange várias regiões. Ao distribuir o cluster, este torna-se mais resiliente a falhas numa região específica.

2.º Federe a operação de vários clusters Kubernetes. Isto envolve ter uma camada ou plano de controlo que esteja ciente de todos os clusters individuais. A camada federada pode distribuir a carga de trabalho entre clusters com base em considerações de desempenho e preço, para otimizar a resiliência e a relação custo-benefício.

Objetivo

1. Implantação de cluster Kubernetes multirregional: implantar um único cluster Kubernetes com nós em várias regiões utilizando tecnologias como o Anthos. Isto envolve configurar a infraestrutura necessária, configurar a rede e garantir uma comunicação perfeita entre os nós do cluster em todas as regiões.

2. Implantação de clusters federados Kubernetes: implementar vários clusters Kubernetes e implemente a federação Kubernetes para permitir a distribuição e gestão da carga de trabalho entre clusters. Configurar um plano de controlo federado e estabeleça a comunicação entre clusters. Garantir que a camada federada está ciente de todos os clusters individuais e pode distribuir as cargas de trabalho de forma eficiente com base em considerações de desempenho e custo.

3. Avaliação e otimização do desempenho: Realizar avaliações de desempenho abrangentes do cluster multirregional e dos clusters federados. Meça e compare fatores como tempos de resposta, latência, taxa de transferência e escalabilidade. Analise como cada solução impacta os Objetivos de Nível de Serviço (SLOs) da aplicação. Isto também envolve a) preparar uma aplicação de demonstração que represente um cenário do mundo real, para simular uma carga de trabalho realista e enfatizar as implementações do cluster; e b) escrever algoritmos de otimização simples para garantir que os SLOs da aplicação são atendidos no cluster multirregional e nos clusters federados. Isto pode envolver estratégias de balanceamento de carga, políticas de dimensionamento automático ou ajustes de alocação de recursos para otimizar dinamicamente o desempenho e manter a conformidade com o SLO.

4. Comparação e avaliação: Comparar o desempenho, a relação custo-benefício e a adequação global do cluster multirregional e dos clusters federados. Analisar os trade-offs, vantagens e limitações de cada abordagem.

Plano de Trabalhos - Semestre 1

- Aprender Kubernetes e estude o estado da arte atual (1 mês).
- Implementar as soluções atualmente disponíveis (2 meses).
- Definir os requisitos de comparação (1 mês).
- Escrever relatório intercalar (1 mês).

Plano de Trabalhos - Semestre 2

- Preparar uma aplicação de demonstração e algoritmos de otimização simples que minimizem os custos e garantam SLOs (3 meses).
- Realizar Testes (1 mês).
- Escrever relatório final (1 mês).

Condições

- O trabalho deverá decorrer no Centro de Informática e Sistemas da Universidade de Coimbra (CISUC) no Grupo NCS e SSE do Departamento de Engenharia Informática da Universidade de Coimbra.

Observações

Existe a possibilidade de atribuição de uma bolsa de estágio, de acordo com o perfil do candidato e disponibilidade financeira.

Co-orientador: Prof Filipe Araujo (filipus@dei.uc.pt)

Orientador

Karima Velasquez
kcastro@dei.uc.pt 📩