Ga naar inhoud

AKS-platform: operations

Deze pagina is voor het platformteam (XMMS in het managed model, je eigen team bij zelfbeheer, zie Beheermodellen). Ze beschrijft het terugkerende werk: upgrades, starten en stoppen van niet-productie, monitoring en alerting, break-glass-toegang en de bekende gaten.

Referentieontwerp, jouw deployment kan afwijken

Schema's en drempelwaarden zijn de waarden van de referentieconfiguratie. Supporturen, reactietijden en escalatie worden bepaald door je contract of je eigen proces, zie Operationele verantwoordelijkheden en Incidentmanagement.

Upgrades van Kubernetes en node images

Upgrades volgen de onderhoudsvensters in Cluster baseline.

Stap Actie
1 Er komt een nieuwe AKS minor versie beschikbaar. Het ontwerp wil een ondersteunde GA-versie die minstens één minor versie achter de nieuwste loopt.
2 Controleer op verwijderde Kubernetes-API's in de platform- en applicatiemanifests (het ontwerp noemt kubent en pluto).
3 Upgrade niet-productie: wijzig aks_kubernetes_version in de niet-productieconfiguratie en draai de pipeline. Patchversies op het patch-kanaal komen vanzelf.
4 Valideer platform-add-ons en workloads. Het ontwerp vraagt om een validatieperiode van ongeveer twee weken vóór productie, met geautomatiseerde tests.
5 Upgrade productie in zijn venster met dezelfde wijziging in de productieconfiguratie.
6 Node image-upgrades volgen het node-OS-venster. Ze zijn niet-verstorend als workloads disruption budgets hebben, en met de surge-instelling van 33%.

Een minor versie kan niet worden teruggedraaid. Wijzig de versie niet in de portal, want Terraform meldt dat als drift.

Starten en stoppen van niet-productie

Een geplande workflow stopt het niet-productiecluster buiten kantooruren en start het weer, om kosten te besparen.

Instelling Waarde
Schema Maandag tot en met vrijdag. Start om 07:00 UTC (09:00 CET), stop om 15:00 UTC (17:00 CET)
Gedrag Leest eerst de power state. Start alleen een gestopt cluster, stopt alleen een draaiend cluster, slaat anders over
Handmatig De workflow kan ook met de hand worden gedraaid met start of stop
Commando az aks start en az aks stop zonder te wachten
Cluster De clusternaam en resource group staan in de workflow voor het standalone niet-productiecluster

Controleer hoe het schema samenvalt met het onderhoudsvenster

Het schema staat in UTC, dus lokale tijden verschuiven een uur met de zomertijd. De onderhoudsvensters van niet-productie beginnen op dinsdag 20:00 (UTC+1), dat is na de stoptijd. Een gestopt cluster wordt niet geüpgraded, dus het venster wordt gemist tenzij het cluster draait. Bevestig hoe jouw platform dit oplost, bijvoorbeeld door het venster te verplaatsen of door de stop op die dag over te slaan. De workflow dekt het hub-integrated niet-productiecluster niet.

Monitoring en alerting

De Azure-resources van de oplossing schakelen monitoring alleen in als je een Log Analytics workspace opgeeft. De monitoringstack in het cluster wordt uitgerold door de GitOps-repository van het platform. Het load testing-ontwerp beschrijft het referentie-niet-productie- cluster als volgt.

Component Detail
Metrics kube-prometheus-stack in de namespace monitoring, met kube-state-metrics en node-exporter. Retentie 7 dagen of 8 GB
Dashboards Grafana uit dezelfde stack. Dashboards worden geprovisioned uit config maps met een label
Logs Grafana Alloy als daemon set, die naar Loki stuurt. Loki is een data source in Grafana
Alertregels Prometheus-regels in de GitOps-repository: SLO burn-rate alerts en recording rules
Routing Alertmanager groepeert op alertnaam, namespace en SLO. Kritieke alerts gaan naar PagerDuty (herhaling elk uur), waarschuwingen gaan naar PagerDuty (herhaling elke 4 uur), de Watchdog-alert gaat nergens heen
Incidenten PagerDuty-service per omgeving, uit de on-call Terraform (Deployment)

Het ontwerp definieert deze service level objectives en alert erop met een snelle en een trage burn rate (14,4 keer en 3 keer de error budget):

Gebied Doel
Beschikbaarheid Kubernetes API server 99,9%
Succespercentage ingress 99,9%, met p95-latentie onder 500 ms en p99 onder 1 s
Beschikbaarheid workloadpods 99,5%
DNS 99,99% succes
GitOps-sync 100% van de applicaties gesynchroniseerd

Andere alerts in het ontwerp: pod restart rate, crash loops, deployments zonder ready replicas, certificaten, en de security- alerts in Identiteit en toegang. Gebruik de load test om de hele keten van regel tot incident te controleren. Zie ook de alertcatalogus voor de alerts van het MCP-platform zelf.

Break-glass-activatie

  1. De engineer activeert de break-glass-groep in PIM met een motivatie. Activatie is tijdelijk (maximaal 4 uur) en vereist MFA.
  2. De activatie geeft een kritieke alert, zodat het platformteam het meteen weet. Het Kubernetes-auditlog legt vast wat de groep doet.
  3. Argo CD draait wijzigingen die met de hand zijn gemaakt terug, dus breng elke wijziging die je wilt behouden naar Git.
  4. Het groepslidmaatschap wordt elk kwartaal gereviewd.

Een cluster herbouwen

Het cluster is ontworpen om te worden herbouwd: draai de pipeline voor de omgeving en laat GitOps daarna platformservices, RBAC, policies en applicaties herstellen. Persistent volumes worden hiermee niet hersteld. Productiedata heeft een eigen back-up nodig. Resource locks en state-bescherming staan beschreven in Cluster baseline.

Review van policy-uitzonderingen

Review elk kwartaal alle actieve policy-uitzonderingen. Verwijder verlopen uitzonderingen. Zie Security policy.

Bekende problemen

Probleem Workaround Status
Een Graph API-probleem laat apply met target all mislukken als cluster role assignments wijzigen Gebruik het target cicd-aks-rbac (Deployment) Wacht op een providerfix
Hub-integrated modus: de private DNS-zone van de container registry is vereist, maar er wordt geen private endpoint voor de registry aangemaakt De hub levert er een, of voeg hem toe aan deze repository Open punt in het ontwerp
Eigendom van de route table in de hub-integrated modus is niet vastgesteld Per omgeving beslissen Open punt in het ontwerp
Azure Local: de Arc Resource Bridge kan het control plane van het cluster niet bereiken (APIServerNotOnline) Open TCP 6443 tussen het managementnetwerk en het logical network (Vereisten) Actie in het netwerk van de klant