Implantação de C# no Kubernetes: guia básico para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que C# e Kubernetes são uma combinação poderosa

\n\n

O desenvolvimento moderno cada vez mais exige não apenas escrever código, mas também empacotá-lo e executá-lo corretamente em um ambiente de nuvem. O Kubernetes (ou K8s) tornou-se o padrão de facto para orquestração de contêineres, e o C# (.NET) é uma das linguagens mais populares para criar aplicações web de alta carga e microsserviços.

\n\n

Neste guia, percorreremos o caminho desde uma aplicação C# pronta até sua implantação completa em um cluster Kubernetes. Você aprenderá como criar uma imagem Docker, escrever manifestos para deployment e serviço, e então executar tudo com kubectl. Sem mágica — apenas prática.

\n\n

Passo 1: Preparação da aplicação .NET e conteinerização

\n\n

1.1 Criando uma Web API simples em C#

\n\n

Para demonstração, criaremos uma ASP.NET Core Web API mínima. Abra o terminal e execute:

\n\n
dotnet new webapi -n MyK8sApp\ncd MyK8sApp
\n\n

Por padrão, o projeto já contém o controller WeatherForecastController. Vamos verificar se a aplicação inicia localmente:

\n\n
dotnet run
\n\n

Acesse http://localhost:5000/weatherforecast — você deve ver uma resposta JSON. Agora nossa aplicação está pronta para ser empacotada.

\n\n

1.2 Criando o Dockerfile

\n\n

A implantação no Kubernetes não é possível sem conteinerização. Vamos criar o arquivo Dockerfile na raiz do projeto:

\n\n
# Usamos a imagem oficial para build\nFROM mcr.microsoft.com/dotnet/sdk:8.0 AS build\nWORKDIR /app\n\n# Copiamos os arquivos do projeto e restauramos as dependências\nCOPY *.csproj .\nRUN dotnet restore\n\n# Copiamos os demais arquivos e compilamos a aplicação\nCOPY . .\nRUN dotnet publish -c Release -o out\n\n# Imagem final — apenas runtime\nFROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime\nWORKDIR /app\nCOPY --from=build /app/out .\nENTRYPOINT ["dotnet", "MyK8sApp.dll"]
\n\n

Observe: usamos multi-stage build — isso reduz o tamanho final da imagem e aumenta a segurança.

\n\n

1.3 Build e verificação da imagem Docker

\n\n

Construa a imagem e execute-a localmente:

\n\n
docker build -t myk8sapp:latest .\ndocker run -d -p 8080:80 --name myapp myk8sapp:latest
\n\n

Verifique o funcionamento: http://localhost:8080/weatherforecast. Se tudo funcionar — ótimo. Pare o contêiner:

\n\n
docker stop myapp && docker rm myapp
\n\n

Passo 2: Fundamentos do Kubernetes — o que você precisa saber para implantar

\n\n

Antes de escrever manifestos, vamos entender os conceitos-chave do Kubernetes:

\n\n
    \n
  • Pod — a menor unidade de implantação. Contém um ou mais contêineres.
  • \n
  • Deployment — gerencia o estado dos Pods: escalonamento, atualizações, recuperação de falhas.
  • \n
  • Service — abstração que fornece acesso de rede aos Pods. Geralmente usa os tipos ClusterIP (interno) ou LoadBalancer (externo).
  • \n
  • ConfigMap / Secret — para armazenar configurações e dados sensíveis.
  • \n
\n\n

Usaremos o minikube para testes locais. Instale-o seguindo o guia oficial.

\n\n

Inicie o cluster:

\n\n
minikube start
\n\n

Passo 3: Criando manifestos Kubernetes para a aplicação C#

\n\n

3.1 Manifesto Deployment

\n\n

Crie o arquivo deployment.yaml:

\n\n
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: myk8sapp-deployment\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: myk8sapp\n  template:\n    metadata:\n      labels:\n        app: myk8sapp\n    spec:\n      containers:\n      - name: myk8sapp\n        image: myk8sapp:latest\n        imagePullPol                

Blogs

Book Recommendations