KUBERNETES → STACKIT SKE · GIDS VOOR ELKE CLOUD

Kubernetes-migratie naar STACKIT SKE, vanuit zes clouds

Uw manifests zijn portabel; alles wat de cloud eromheen heeft gebouwd, is dat niet. Welke bron het ook is (EKS, AKS, GKE, CCE, ACK of OKE), StackToIT classificeert het cluster als REPLATFORM. Voor EKS, AKS en GKE schrijft het een SKE-cluster met node pools en noemt het elke cloudspecifieke instelling die niet wordt overgenomen; voor CCE, ACK en OKE legt het de koppeling vast in het assessment. Deze gids toont de uitvoer naast elkaar.

EKS: een cluster en een node group worden één SKE-cluster

Een kleine omgeving die voor deze gids is opgesteld en op 4 november 2026 door StackToIT is beoordeeld. Links: het EKS-cluster en de node group. Rechts: het stackit_ske_cluster-blok in de STACKIT-Terraform die de engine schreef, zonder de reviewopmerkingen.

Voorbeeldinvoermain.tf
resource "aws_eks_cluster" "platform" {
  name     = "platform"
  version  = "1.31"
  role_arn = aws_iam_role.cluster.arn

  vpc_config {
    subnet_ids = [aws_subnet.private_a.id, aws_subnet.private_b.id]
  }
}

resource "aws_eks_node_group" "workloads" {
  cluster_name    = aws_eks_cluster.platform.name
  node_group_name = "workloads"
  node_role_arn   = aws_iam_role.nodes.arn
  subnet_ids      = [aws_subnet.private_a.id, aws_subnet.private_b.id]
  instance_types  = ["m6i.xlarge"]

  scaling_config {
    desired_size = 3
    min_size     = 2
    max_size     = 6
  }
}
STACKIT-Terraform van StackToITterraform/kubernetes.tf
resource "stackit_ske_cluster" "platform" {
  project_id = var.project_id
  name       = "platform"
  node_pools = [{
    name               = "workloads"
    machine_type       = var.pool_workloads_machine_type
    minimum            = 2
    maximum            = 6
    availability_zones = var.availability_zones
  }]
  kubernetes_version_min = "1.36"
}
  • Node groups worden node pools

    De node group is op STACKIT geen aparte resource, maar een node pool binnen het clusterblok. Minimum en maximum worden overgenomen; desired_size niet, omdat een SKE-pool schaalt tussen zijn grenzen en geen gewenst aantal kent.

  • Het machinetype wordt afgeleid, niet gekopieerd

    m6i.xlarge heeft 4 vCPU en 16 GiB. Het concept laat de pool verwijzen naar een variabele waarvan de standaardwaarde het STACKIT-machinetype is dat de run voor die grootte voorstelt. De keuze blijft een open beslissing die u bevestigt of wijzigt.

  • De versie gaat omhoog

    De bron draait Kubernetes 1.31. De catalogus van eu01 die de run las, begint bij 1.35, maar de lifecycledata noemt 1.36 de laagste ondersteunde versie op of boven de bron. De run zet daarom kubernetes_version_min op 1.36 en waarschuwt dat er vijf minorversies aan upgrades tussen beide liggen: controleer vóór de overstap op verwijderde API's.

  • Rollen en subnets vervallen, bij naam genoemd

    De IAM-rol van het cluster, de noderol en de subnets van het control plane hebben geen SKE-equivalent. Elk daarvan staat in het bestand als niet overgenomen, met de vraag die overblijft: waarvoor de node-inloggegevens werden gebruikt en bij welk netwerk het cluster aansluit.

GKE: bescherming, schaling en identiteit werken anders

Dezelfde oefening voor een Google Kubernetes Engine-cluster en zijn node pool. Links: de invoer. Rechts: het SKE-blok.

Voorbeeldinvoermain.tf
resource "google_container_cluster" "platform" {
  name                     = "platform"
  location                 = "europe-west3"
  network                  = google_compute_network.platform.id
  subnetwork               = google_compute_subnetwork.gke.id
  min_master_version       = "1.32"
  remove_default_node_pool = true
  initial_node_count       = 1
  deletion_protection      = true

  release_channel {
    channel = "REGULAR"
  }

  workload_identity_config {
    workload_pool = "shop-platform-prod.svc.id.goog"
  }
}

resource "google_container_node_pool" "general" {
  name     = "general"
  cluster  = google_container_cluster.platform.id
  location = "europe-west3"

  autoscaling {
    min_node_count = 1
    max_node_count = 5
  }

  node_config {
    machine_type    = "e2-standard-8"
    disk_size_gb    = 100
    service_account = google_service_account.nodes.email
    oauth_scopes    = ["https://www.googleapis.com/auth/cloud-platform"]
  }
}
STACKIT-Terraform van StackToITterraform/kubernetes.tf
resource "stackit_ske_cluster" "platform" {
  project_id = var.project_id
  name       = "platform"
  node_pools = [{
    name               = "general"
    machine_type       = var.general_machine_type
    minimum            = var.platform_general_minimum
    maximum            = var.platform_general_maximum
    availability_zones = var.availability_zones
  }]
  kubernetes_version_min = "1.36"
  lifecycle {
    prevent_destroy = true
  }
}
  • Beveiliging tegen verwijderen blijft behouden

    deletion_protection = true wordt overgenomen als Terraform-vangrail, lifecycle prevent_destroy, zodat een destroy net als voorheen wordt geweigerd.

  • Schaalgetallen veranderen van betekenis

    De autoscalinglimieten van GKE tellen nodes per zone; het minimum en maximum van SKE tellen de hele pool. De run kopieert geen waarde als equivalent en laat een opmerking achter om de totalen van de pool in te stellen.

  • Workload Identity wordt niet overgenomen

    De Google workload pool heeft geen tegenhanger. Workloads federeren via een identity provider voor STACKIT-serviceaccounts die de issuer van het cluster gebruikt; de run markeert dat als bevinding en genereert die niet. Ook release channels vervallen: SKE kent geen channels en automatische versie-updates zijn een onderhoudsinstelling.

CCE, ACK en OKE: het cluster is beoordeeld, de details zijn voor u

Voor bronnen op Huawei Cloud, Alibaba Cloud en Oracle Cloud schrijft StackToIT een STACKIT-Terraform-concept ter beoordeling en legt de beslissing vast. Dit zijn de clustereenheden zoals assessment.json ze vastlegt (id, klasse, zekerheidsniveau en doel).

StackToIT-assessmentassessment.json
{
  "id": "huaweicloud_cce_cluster.platform",
  "result": {
    "class": "REPLATFORM",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT Kubernetes Engine (SKE)",
      "resources": [
        "stackit_ske_cluster",
        "stackit_ske_kubeconfig"
      ]
    }
  }
}
{
  "id": "alicloud_cs_managed_kubernetes.platform",
  "result": {
    "class": "REPLATFORM",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT Kubernetes Engine (SKE)",
      "resources": [
        "stackit_ske_cluster",
        "stackit_ske_kubeconfig"
      ]
    }
  }
}
{
  "id": "oci_containerengine_cluster.platform",
  "result": {
    "class": "REPLATFORM",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT Kubernetes Engine (SKE)",
      "resources": [
        "stackit_ske_cluster",
        "stackit_ske_kubeconfig"
      ]
    }
  }
}
  • Dezelfde klasse, hetzelfde doel

    Alle drie de clusters krijgen de klasse REPLATFORM met zekerheidsniveau MEDIUM en doel STACKIT Kubernetes Engine. Workloadmanifests kunnen blijven; node pools, annotaties voor load balancers en opslag, en identiteit worden vervangen, net als add-ons (bij OKE noemt de run in plaats daarvan images).

  • Node pools verschillen

    In deze demoruns heeft de OKE-node pool de klasse REPLATFORM, terwijl de node pools van CCE en ACK MANUAL_REVIEW zijn met zekerheidsniveau LOW: deze build herkent hun resourcetypen niet, dus er wordt niets van beoordeeld of uitgewerkt. Ze verschijnen als werk voor een architect, niet als stille leemte.

Wat elke bron verandert

BronclusterWat de run vond om te wijzigenUitvoer van de run
Amazon EKSNode groups worden node pools; desired size en clusterrollen worden niet overgenomen; versie verhoogd naar 1.36SKE-clusterblok in Terraform
Azure AKSSysteem- en gebruikerspools worden twee SKE-pools; managed identity, DNS-prefix en instellingen van de netwerkplugin worden niet overgenomen; het adres van de API-server verandertSKE-clusterblok met twee node pools
Google GKESchaallimieten per zone worden totalen voor de pool; Workload Identity en release channel worden niet overgenomenSKE-clusterblok met een destroy-beveiliging
Huawei CCECluster gekoppeld; node pool aan een architect voorgelegdAssessment-item en Terraform-concept ter beoordeling
Alibaba ACKCluster gekoppeld; node pool aan een architect voorgelegdAssessment-item en Terraform-concept ter beoordeling
Oracle OKECluster en node pool gekoppeld; de shape wordt een STACKIT-flavor; zoneplaatsing opnieuw bepaaldAssessment-item en Terraform-concept ter beoordeling

Uit de zes demoruns van deze reeks gidsen. De naam van het AKS-cluster is ingekort, omdat een SKE-clusternaam 1 tot 11 tekens heeft; de run koos aks-2a0320 en vraagt u de gewenste naam in te stellen.

De migratie, in volgorde

De onderstaande stappen zijn algemene praktijk; de run levert de eerste twee en de lijsten die de rest voeden.

  1. 1 · De infrastructuurcode beoordelen

    Laat de engine los op de Terraform of OpenTofu die de clusters definieert. Die noemt elke cloudspecifieke instelling, zodat de lijst met wijzigingen er al is voordat iemand een regel schrijft.

  2. 2 · Eerst netwerk en identiteit bepalen

    Plaatsing van het cluster, toegang tot de API en de manier waarop workloads zich authenticeren zijn de vragen die de concepten bij elke bron openlaten. Leg ze vast vóór de nodegroottes.

  3. 3 · Manifests en charts scannen

    Zoek naar annotaties voor load balancers en ingress, storage classes, annotaties van serviceaccounts voor cloudidentiteit en controllers die alleen op de broncloud bestaan. Dit zijn de onderdelen die niet met de manifests meeverhuizen.

  4. 4 · Het SKE-cluster bouwen in een testproject

    Pas het opgestelde cluster toe nadat de variabelen zijn ingevuld en rol de workloads daarna uit, eerst de stateless workloads.

  5. 5 · Persistente volumes verplaatsen

    De run stelt een back-uptool voor, zoals Velero, voor volumedata; de engine verplaatst zelf nooit data. Kies de methode op basis van omvang, wijzigingssnelheid en toegestane downtime.

  6. 6 · Per verkeersstroom overschakelen

    Schakel DNS of de load balancer ervoor per ingangspunt om, houd het broncluster tot de controles slagen en faseer het dan uit.

Wat de bronclouds gemeen hebben

  • Een beheerd control plane

    AKS, GKE en EKS beheren het control plane voor u, en SKE doet dat ook. Het adres van de API-server en de inloggegevens veranderen, maar het beheermodel blijft vertrouwd.

  • Automatische of standaardmodi

    EKS kent Auto Mode, AKS kent Automatic en Standard, GKE kent Autopilot en Standard. Automatisch beheerde nodefuncties zijn gedrag van de provider; controleer of workloads ervan afhangen.

  • Add-ons die aan de cloud gebonden zijn

    Netwerkplugins, storagedrivers, ingress-controllers en identiteitsintegraties komen van de broncloud en worden vervangen door SKE-equivalenten.

  • Versies

    In deze runs begint de SKE-catalogus voor eu01 bij 1.35 en vraagt elk concept om 1.36, dus de bronclusters op 1.31 en 1.32 worden onderweg geüpgraded. Controleer eerst uw manifests op verwijderde Kubernetes-API's.

Vragen van platformteams

Moet ik mijn Kubernetes-manifests herschrijven?

Niet voor de Kubernetes-objecten zelf. De aanpassingen zitten in cloudspecifieke annotaties, storage classes, ingress classes en identiteitsconfiguratie, die de run als te beoordelen punten opsomt.

Verplaatst StackToIT mijn workloads of volumes?

Nee. Het leest infrastructuurcode en schrijft een plan, Terraform waar dat wordt ondersteund, en handmatige stappen. Data verplaatst u zelf met de tooling van uw keuze.

Schrijft de run Terraform voor CCE, ACK of OKE?

Ja. De runs voor Huawei, Alibaba en Oracle schrijven assessments, beslissingen en een STACKIT-Terraform-concept dat uw architecten beoordelen. Ook de koppeling van het cluster wordt vastgelegd, zodat het werk kan worden gepland.

Welke STACKIT-functies krijgt een cluster?

De SKE-documentatie noemt een hoogbeschikbaar beheerd control plane, automatische updates van Kubernetes en het besturingssysteem, autoscaling van pods en nodes, en beheer via de portal, Terraform, de API of de CLI.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring