1 open besluit1414 voorstellen

Onderwerp

Uitval, back-up en herstel

Wat er gebeurt als een knooppunt, het clusterbeheer of een cel uitvalt, welke momentopnamen en back-ups er zijn, en hoe een besturing, het clusterbeheer of een heel applicatiecluster wordt teruggezet.

Nog niet bevestigd door een mens. Eigenaar: vdo89. Bron in de atlas

Domein
Volgt uit
Functies
Producten
Verwant

Wat het is

Dit onderwerp beschrijft hoe applicatieclusters en het clusterbeheer zich gedragen bij uitval en hoe zij worden hersteld. Uitval van één werkerknooppunt of één rek laat iedere besturing beschikbaar; verlies van de hele besturing laat toepassingen doordraaien, maar stopt verplaatsen, opschalen en uitrollen. Iedere besturing en het clusterbeheer zelf zijn terug te zetten uit momentopnamen met de bijbehorende sleutel, en een heel applicatiecluster is uit code en back-up opnieuw op te bouwen, ook in de herstelzone.

Waarom zo

Besturing, werkers en gegevens hebben elk een eigen uitvalgrens, zodat een storing in de ene laag de andere niet meteen raakt. Het herstelcontract bestaat uit vier delen: de clusterdefinitie in versiebeheer, een vaste API-naam, een kopie van de configuratiedatabase en de sleutels. Zonder één van de vier is een cluster niet terug te zetten. Omdat de leverancier terugzetten alleen op hetzelfde clusterbeheer beschrijft, is iedere andere route een acceptatiecriterium met opbouw uit code als terugvaloptie, en wordt herstel regelmatig beproefd.

Uitspraken

1 vastgesteld15 voorstellen

Alle 15 voorstellen vaststellen

Afhankelijkheden en foutdomeinen

VastgesteldRegel#

Een applicatiecluster hangt tijdens gebruik alleen af van zijn eigen cel, de vlootbrede voorzieningen en, voor nieuwe versies van toepassingen, het versiebeheer van de teams. Besturing, werkers en volumes staan in één cel, over de rekken verdeeld. Een dienst in bedrijfskritische productie heeft een tweede, gelijk gedefinieerd cluster in de andere cel, en per dienst schrijft één cel.

Toelichting

Zo werkt en herstelt de cel zelfstandig. Uitvalproeven in groeipadstap 2 en de toets Herstel na een aanval tonen het aan.

VoorstelWaarde#

Het rek is het foutdomein van het clusterbeheer: uitval van één werkerknooppunt of één rek laat iedere besturing beschikbaar. Het gedrag bij uitval en het herstel staan in de tabel.

GebeurtenisGedragHerstel
Eén werkerknooppunt, tijdelijkIedere besturing blijft beschikbaar met twee van de drie etcd-stemmers; de API is kort onderbroken; de werkers op de werkervirtualisatie draaien doorHet etcd-exemplaar synchroniseert na terugkeer; de andere exemplaren passen op de overige knooppunten
Eén werkerknooppunt, blijvendAls hierboven; een tweede uitval legt alle besturingen stilDe koude reserveserver in gebruik; iedere besturing binnen 1 werkdag weer met drie exemplaren; een nieuwe reserveserver besteld
Eén rekEén besturings- en één werkerknooppunt van het clusterbeheer weg; het clusterbeheer en iedere besturing houden hun quorum; werkervirtualisatie en opslagcluster verliezen hun deelAls bij een werkerknooppunt
Twee werkerknooppuntenAlle besturingen verliezen hun etcd-quorum: verplaatsen, opschalen en uitrollen stoppen; bestaande werklasten draaien door zolang hun voorzieningen niet wijzigenKnooppunten herstarten, anders iedere besturing terugzetten uit haar laatste momentopname
Eigen besturing van het clusterbeheerBesturingspods draaien door en herstarten alleen op hun eigen knooppunt; verplaatsen, nieuwe clusters en updates kunnen nietDe etcd van het clusterbeheer herstellen uit zijn momentopname
Clusterbeheer verlorenAls bij twee werkerknooppuntenHet clusterbeheer uit code opbouwen en importeren; dan iedere besturing terugzetten met de bijbehorende sleutel of opnieuw opbouwen; is het beheer aangetast, dan begint het herstel bij de herstelkern
VlootbeheerClusterbeheer en besturingen draaien door; nieuwe clusters, updates en beleidswijzigingen wachtenHet vlootbeheer rolt na herstel de intussen samengevoegde definities uit
Geheimenbeheer of containerregistryBesturingen werken door; een verplaatst exemplaar start alleen met een beeld dat op het knooppunt staat; nieuwe clusters wachtenNa herstel van de basisdienst
OpslagclusterClusterbeheer en besturingen werken door; momentopnamen en back-ups mislukken met een melding; werkers worden via hun rootvolume geraaktNa herstel een extra momentopname van alle besturingen
CelAlle besturingen van de cel vallen uitBedrijfskritische diensten: overname door de andere cel, de naam wijst pas om na uitsluiting; overige diensten volgens hun profiel
Toelichting

Het gedrag bij uitval van de eigen besturing van het clusterbeheer en van het vlootbeheer wordt beproefd; de toets Uitval van het vlootbeheer dekt het laatste.

VoorstelWerking#

Valt een werkerknooppunt van het clusterbeheer weg, dan houdt iedere besturing haar quorum en draaien de toepassingen door. Bij verlies van de hele besturing stoppen nieuw uitrollen, opnieuw plannen en opschalen; dat bestaande processen doordraaien, maakt de dienst nog niet volledig beheersbaar.

StapVanNaarHandeling
1etcdOverige stemmersBehoudt het quorum door de spreiding over verschillende werkerknooppunten
2WerkervirtualisatieApplicatieprocessenBlijft bestaande processen uitvoeren zolang hun afhankelijkheden gezond zijn
3PlatformbeheerClusterbeheerHerstelt de capaciteit en meet de API-onderbreking
VoorstelWaarde#

Vanuit een applicatiecluster gezien is het gedrag bij uitval zoals in de tabel.

OnderdeelExemplaren en plaatsingGedrag bij uitvalHerstel
Gehoste besturingHoog beschikbaar, drie etcd-exemplaren op verschillende knooppuntenEén knooppunt weg: korte onderbreking van de API. Besturing weg: toepassingen draaien door, verplaatsen en uitrollen stoppenTerugzetten uit de momentopname van iedere 6 uur
WerkerVirtuele werkers verdeeld over de werkerknooppunten van de werkervirtualisatiePods starten op andere werkers; een toepassing met één exemplaar ligt kort stilDe NodePool vervangt de werker
IngangsadresOp één werker tegelijk (MetalLB, laag 2)Een andere werker neemt het over; lopende verbindingen breken afAutomatisch
WerkerknooppuntVier, één als reserveDe werkers erop vallen uit; bij onderhoud verhuizen zij live, met ten hoogste 2 seconden onderbrekingNa uitsluiting van de server elders gestart
RekWerkerknooppunten elk in een ander rek, opslag over vier rekkenHet cluster werkt door; volumes met twee van de drie kopieënBinnen 8 uur weer volledig beschermd
BasisdienstenGeheimenbeheer, toegangsvoorziening, containerregistryGeen nieuwe geheimen, certificaten of aanmeldingen; tijdelijke inloggegevens verlopen binnen hun looptijd; een werklastcertificaat (24 uur, vernieuwd bij twee derde) overbrugt 8 uurNa herstel vernieuwen de koppelingen vanzelf
VlootbeheerBuiten de cellenDe laatste inrichting blijft; nieuwe clusters en beleid wachtenWachtende wijzigingen worden gecontroleerd verwerkt
Versiebeheer van de teamsRWS-brede voorzieningNieuwe versies van toepassingen wachtenArgo CD haalt daarna weer op
CelBij bedrijfskritische productie een tweede cluster in de andere celAlle clusters van de cel vallen uitOntwikkelen en beproeven: opnieuw opbouwen; reguliere productie: herstel uit de onveranderbare kopie via de herstelzone; bedrijfskritische productie: overname
VoorstelRegel#

In de herstelvolgorde van de cel volgt het clusterbeheer op het vlootbeheer. Een herstart vraagt alleen fabric, naam- en tijdvoorziening en lokale opslag, zolang de beelden op de knooppunten staan; een nieuw knooppunt, een nieuw cluster of een terugzetting vraagt ook de basisdiensten, het vlootbeheer, de objectopslag en de werkervirtualisatie.

VoorstelWerking#

Een herbouw van een applicatiecluster begint pas als naam- en tijdvoorziening, geheimenbeheer, containerregistry, toegang en opslag van de cel werken. Na besturing, werkers en standaardinrichting volgen, zodra het nalevingsoverzicht ‘voldoet’ toont, de toepassingen en volumes uit de gecontroleerde kopie.

Momentopnamen en back-up

VoorstelOntwerpbesluit#

Ieder gehost cluster heeft een vast API-adres uit de geregistreerde reeks van de cel, met een vaste naam die bij herstel gelijk blijft, omdat herstel uit een momentopname dezelfde naam vraagt. Bij herstel in de andere cel of in de herstelomgeving krijgt het een adres uit de reeks van die cel, en de naam wijst pas naar het nieuwe adres na uitsluiting van de oude besturing.

Toelichting

Alternatief: dynamische adressen. Dan moeten naam, verkeersverdeling en zoneregels bij ieder nieuw adres mee, ook tijdens herstel. De inventaris en een overnameproef tonen de werking aan.

VoorstelRegel#

Van iedere besturing en van het clusterbeheer zelf bestaat iedere 6 uur een etcd-momentopname en dagelijks een back-up van de clusterobjecten, met een versleutelde, onveranderbare kopie buiten de cel. De momentopnamen lopen als geplande taak, één cluster tegelijk per cel. Een momentopname pauzeert de afstemming van het cluster met een eindtijdstip en hervat haar altijd.

Toelichting

Gevolg: een korte pauze van de afstemming per cluster. Het back-upoverzicht meldt de eerste mislukking, en een cluster dat gepauzeerd blijft, geeft een melding.

VoorstelRegel#

Clusterobjecten en volumes van een applicatiecluster hebben een back-up volgens het back-upschema, met een onveranderbare kopie buiten de cel: per naamruimte een DataProtectionApplication en een Schedule, met een eigen RGW-gebruiker en bucket per cluster. Databases volgen de eigen back-up van de beheerde database. Het cluster is uit code en back-up opnieuw op te bouwen.

Toelichting

Zo is herstel ook mogelijk als de cel is aangetast. De herbouwproef toont het aan.

Terugzetten en herbouw

VoorstelOntwerpbesluit#

Na blijvend verlies van een werkerknooppunt heeft iedere besturing binnen 1 werkdag weer drie etcd-exemplaren, op de koude reserveserver. Na verlies van het clusterbeheer worden de besturingen teruggezet in de volgorde: het besturingscluster van het dienstennetwerk, de clusters in bedrijfskritische productie, die in reguliere productie, het bouw- en het portaalcluster, en ten slotte die in ontwikkelen en beproeven.

Toelichting

Zo duurt de periode met twee stemmers kort, en gaat productie voor.

VoorstelWerking#

Een verloren configuratiedatabase wordt teruggezet uit de laatste bruikbare momentopname, met de sleutelversie van het tijdstip van die momentopname. De LoadBalancer-diensten komen terug met hun geregistreerde adres, en naam en route worden gecontroleerd. De eigen sleutel per cluster gaat daarom mee in de back-up, en een vervangen sleutel blijft bewaard zolang momentopnamen haar nodig hebben.

VoorstelRegel#

Op een herbouwd clusterbeheer wordt een besturing alleen teruggezet langs de route die bij de acceptatie is aangetoond: uit de momentopname, met de volumes uit de back-up binnen het cluster. Anders wordt het gastcluster uit code en back-up opnieuw opgebouwd.

Toelichting

De leverancier beschrijft terugzetten alleen op hetzelfde clusterbeheer; daarom is terugzetten op een herbouwd clusterbeheer een acceptatiecriterium, met opbouw uit code en back-up als terugvaloptie. Een opbouwproef toont de route aan.

VoorstelRegel#

Een applicatiecluster dat in de herstelzone wordt teruggezet, krijgt een definitie met storageDriver Manual: zijn volumes komen uit de kopie op de gastklasse van de werkervirtualisatie en gaan pas bij de terugkeer naar productie naar het opslagcluster. Wordt het in de herstelzone van de andere cel teruggezet, dan krijgt het een API-adres uit de reeks van die cel en gebruikt de API-server het certificaat van de eigen clusterautoriteit van het cluster, omdat de tussen-CA van de andere cel die naam niet uitgeeft. Vanaf groeipadstap 2 staat de herstelomgeving van iedere cel op het clusterbeheer van de andere cel, op de vrije plaats.

Toelichting

Spanning: de leverancier beschrijft het terugzetten van een gehost cluster alleen op hetzelfde clusterbeheer, terwijl herstel in de herstelzone van de andere cel een ander clusterbeheer gebruikt. De beproeving moet uitwijzen of die route werkt of dat het cluster daar uit code en back-up wordt opgebouwd.

VoorstelRegel#

Het terugzetten van een besturing wordt ieder kwartaal beproefd, de herbouw van het clusterbeheer ieder half jaar in de leeromgeving. Bij de acceptatie is een momentopname met de bijbehorende sleutel teruggezet in de leeromgeving, en met de productiesleutel in de herstelomgeving.

Toelichting

De toets Herstel van gegevens en cluster beproeft het terugzetten; de herbouw van het clusterbeheer hoort in groeipadstap 2 bij de toets Herstel na een aanval.

VoorstelWerking#

Valt een cel uit, dan neemt de andere cel een dienst in bedrijfskritische productie over: de oude kant wordt uitgesloten, de andere cel wordt leidend en de terugkeer verloopt gecontroleerd. De naam van het cluster wijst pas om na uitsluiting van de oude kant.

Toelichting

De overname wordt beproefd vóór de vrijgave voor bedrijfskritische productie.

VoorstelMaatregel#

Bij een incident op het clusterbeheer trekt platformbeheer samen met het SOC de rechten in, vervangt het de sleutels en toegangsbewijzen van de betrokken clusters en zet het zo nodig een besturing van vóór de aantasting terug, eerst in de herstelomgeving. Bij een beveiligingsincident in een applicatiecluster isoleert het platform de naamruimte of het cluster volgens het SOC: verkeer dicht, werklast stoppen, identiteiten intrekken en bewijs bewaren.

Toelichting

Een aanvalssimulatie en de toets Detectie en respons beproeven het.

Verwijzen hiernaar

Onderwerpen 3