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¶
- De engineer activeert de break-glass-groep in PIM met een motivatie. Activatie is tijdelijk (maximaal 4 uur) en vereist MFA.
- De activatie geeft een kritieke alert, zodat het platformteam het meteen weet. Het Kubernetes-auditlog legt vast wat de groep doet.
- Argo CD draait wijzigingen die met de hand zijn gemaakt terug, dus breng elke wijziging die je wilt behouden naar Git.
- 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 |