Lagringsservrar och deras inställningar
Vad plattformen kör för varje lagringskonto, vilka installationsinställningar som formar det, och vad du behöver veta om versioner, nycklar och kvarhållna volymer.
Vad ett konto består av
S3-modulen registrerar varje lagringskonto och skriver en S3StorageAccount-resurs
(platform.stackship.se/v1); Stackship-operatorn bygger resten i resursgruppens namnrymd:
| Objekt | Namn | Anmärkning |
|---|---|---|
| Deployment | s3sa-<account> |
En replik; ersätts med strategin Recreate, eftersom volymen bara kan vara ansluten till en pod i taget |
| PersistentVolumeClaim | s3sa-<account>-<suffix> |
Storlek = kontots kvot; klustrets standardlagringsklass. Skapas en gång och ändras aldrig i storlek |
| Service och Ingress | s3sa-<account> |
Ingressen betjänar kontots värdnamn, med ett certifikat från installationens utfärdare om inte kontot anger en egen Secret |
| Secret | s3sa-<account>-module-creds |
Klientuppgifterna för kontots egen hanterade identitet |
| ServiceAccount | stackship-s3-server |
Delas av namnrymdens S3-serverpoddar |
Varje server anropar S3-modulen på dess gRPC-port 8081 för att kontrollera inloggningsuppgifter, registrera buckets, rapportera användning och skicka granskningsposter. Boundaryns nätverksregel Object storage control tillåter det — se Nätverksregler.
Installationsinställningar
| Inställning | Var | Innehåller |
|---|---|---|
S3__HostnameSuffix |
ConfigMap module-s3-config |
Den överordnade domänen för kontonas värdnamn, s3.example.com, härledd från API-domänen |
S3__ServerImage |
ConfigMap stackship-operator-config |
S3-serverns avbildning, <registry host>/public/s3-server:<version>, låst av plattformsreleasen |
S3__ControlPlaneGrpcUrl |
ConfigMap stackship-operator-config |
Där servrarna når S3-modulen: http://module-s3.stackship-system:8081 |
S3__PortalOrigins |
ConfigMap stackship-operator-config |
Portalens ursprung, som varje server tillåter för CORS |
DataProtection__DEK |
Secret stackship-data-protection, nyckel dek |
Nyckeln som skyddar de lagrade hemligheterna för åtkomstnycklar och tillfälliga inloggningsuppgifter |
Båda ConfigMap:arna finns i stackship-system. Operatorns ConfigMap renderas på nytt när
plattformen uppgraderas, så ändringar du gör i den för hand överlever inte en uppgradering.
Kontonas värdnamn är <account>.s3.example.com om inte ett konto anger ett eget, så
s3.example.com behöver en DNS-post med jokertecken som pekar mot ingress-kontrollern.
S3-modulen vägrar starta om inte DataProtection__DEK avkodas till exakt 32 byte. Byter du nyckeln
blir varje lagrad åtkomstnyckel och tillfällig inloggningsuppgift oanvändbar.
Serverversioner
En plattformsuppgradering kan föra med sig en ny S3__ServerImage. Nya konton startar på den; ett
befintligt konto behåller avbildningen som dess server startades med tills dess konfiguration ändras
— en ändring av dess värdnamn, TLS-inställningar, CORS-ursprung eller
Tillåt bucket-livscykel via S3-API startar dess server på den aktuella avbildningen. En ändring av
Endast HTTP eller Behåll data vid borttagning gör det inte. En ändring av
S3__PortalOrigins startar om servern för varje konto, på den aktuella avbildningen.
Kvarhållna volymer
När ett konto med Behåll data vid borttagning tas bort ligger dess PersistentVolumeClaim kvar i namnrymden, fristående. Ett nytt konto återanvänder den aldrig: volymnamnen innehåller kontots unika ID. För att återställa datan monterar du claimen i en egen pod och kopierar ut den — objekten lagras som filer, i en katalog per bucket — och tar bort claimen när du är klar. Claims tas bort med sin namnrymd, det vill säga när resursgruppen tas bort.
Operatorn tar bort claims men aldrig PersistentVolumes. För att Behåll data vid borttagning
avstängt ska frigöra disken måste lagringsklassen ha återtagandepolicyn Delete.
Granskningsdata
S3-modulen sparar granskningsposter i schemat s3_audit i plattformens databas och tar bort poster
som är äldre än 90 dagar en gång om dagen.