Hoppa till innehållet
Stackship-dokumentation English

PolicyerAdministratörerMaskinöversatt

Hur policyer når klustren

Vilka objekt en policy blir i varje kluster, hur du kontrollerar om den tillämpas, och hur plattformen försöker igen mot kluster den inte nådde.

Hyresgäster skriver policyer via Policies-modulen, module-policies i stackship-system, som sparar dem i sin egen databas. De tre admission-reglerna — Obligatoriska etiketter, Tillåtna register och Förbjud taggen latest — förs sedan ut till varje kluster som policyn gäller. Tillåtna beräkningsplaner lämnar aldrig kontrollplanet: modulerna som skapar resurser frågar Policies-modulen om den.

Objekten i ett kluster

För varje kluster i policyns omfattning skriver modulen en klusteromfattande Policy-resurs (policies.platform.stackship.se) med namnet policy-<policy id>, märkt platform.stackship.se/boundary=<boundary id>. Den skriver den som plattformen, inte som personen som sparade policyn.

Operatorn i klustret gör om resursen till:

  • en ValidatingAdmissionPolicy med namnet stackship-<policy id>, som innehåller regeln, med felpolicyn Fail: ett uttryck som inte kan utvärderas avvisar objektet;
  • medan policyn är påslagen, en ValidatingAdmissionPolicyBinding med samma namn och åtgärden Deny, som väljer namnrymderna märkta platform.stackship.se/boundary=<boundary id>.

När en policy inaktiveras tas bindningen bort och admission-policyn lämnas kvar, och den utvärderar då ingenting. När Policy-resursen tas bort tar operatorn bort båda.

Kontrollera en policy i ett kluster

Resursens status visar vad operatorn gjorde av den:

bash
kubectl get policies.platform.stackship.se policy-<policy-id> -o jsonpath='{.status.phase}'
Fas Betydelse
Enforcing Admission-policy och bindning är installerade
Inert Installerad men inte bunden — policyn är inaktiverad
Unsupported Klustret har inte ValidatingAdmissionPolicy, som kräver Kubernetes 1.30 eller senare. Ingenting tillämpas; operatorn kontrollerar igen varje timme
Error Resursen kunde inte göras om till en admission-policy, eller så misslyckades tillämpningen; villkoret Ready säger varför

Portalen visar inget av detta: en policy i ett kluster med Unsupported ser likadan ut som en som tillämpas. Hyresgäster får veta en policys läge i klustren bara från dig.

Nya försök

En sparning skriver till alla kluster på en gång; ett kluster som avvisar eller inte går att nå registreras, och sparningen lyckas ändå. Var femte minut tillämpar modulen varje policy på nytt i alla kluster som dess boundary omfattar, så att ett sådant kluster kommer ikapp. Bara en replik kör en sådan omgång åt gången.

Omgången lägger bara till och uppdaterar; den tar aldrig bort. En policy lämnar ett kluster bara när någon snävar in dess omfattning eller tar bort den. När en boundary slutar omfatta ett kluster ligger dess policyer därför kvar där tills var och en sparas igen eller tas bort. En borttagning avvisas, och policyn behålls, tills varje kluster där den är installerad har tagit bort den.

Inställning Standard Betydelse
Policies__ConvergeIntervalMinutes 5 Minuter mellan omgångarna
Policies__ConvergeOnce false Kör en omgång och sluta sedan

Båda är miljövariabler för deploymenten module-policies; installationsprogrammet erbjuder dem inte.

Kyverno

När Policies-modulen installeras installeras också Kyverno 3.4.5, som plattformen använder för egna skydd. Hyresgästernas policyer är inte Kyverno-policyer; de är admission-objekten i Kubernetes ovan.