Fișierul keryn.yamlThe keryn.yaml file
AplicațiiApps
O aplicație este un container cu replici, resurse, verificări de sănătate și, opțional, domenii publice.
An app is a container with replicas, resources, health checks and, optionally, public domains.
CâmpuriFields
| Câmp | Implicit | Descriere |
|---|---|---|
image | — | imaginea containerului; recomandat fixată prin amprentă (@sha256:…) |
build | — | construire din cod sursă în registrul grupului (poartă deschisă) |
port | 8080 | portul pe care ascultă containerul |
replicas | 1 | 0–50 |
domains | [] | domenii publice cu TLS automat |
private | false | fără port public; accesibilă doar în grup |
env | {} | variabile de mediu fără caracter secret |
secrets | [] | numele secretelor injectate ca variabile |
health | — | path sau tcp, initial_delay, period |
resources | cpu 250m, memory 256Mi | plus gpu 0–8 |
volumes | [] | name, path, size (implicit 1Gi) |
scratch | [] | directoare temporare care pot fi scrise |
command | — | comanda containerului, ca listă |
host | — | fixează aplicația pe o anumită gazdă |
schedule | — | expresie cron cu 5 câmpuri; vedeți Joburi |
| Field | Default | Description |
|---|---|---|
image | — | container image; pinning by digest (@sha256:…) is recommended |
build | — | build from source into the cluster registry (open gate) |
port | 8080 | port the container listens on |
replicas | 1 | 0–50 |
domains | [] | public domains with automatic TLS |
private | false | no public port; reachable only in the cluster |
env | {} | non-secret environment variables |
secrets | [] | names of secrets injected as variables |
health | — | path or tcp, initial_delay, period |
resources | cpu 250m, memory 256Mi | plus gpu 0–8 |
volumes | [] | name, path, size (default 1Gi) |
scratch | [] | writable temporary directories |
command | — | container command, as a list |
host | — | pins the app to a specific host |
schedule | — | 5-field cron expression; see Jobs |
Verificări de sănătateHealth checks
Keryn generează o verificare de pregătire și una de funcționare. Traficul ajunge la o replică doar după ce verificarea de pregătire trece; o replică blocată este repornită.
Keryn generates a readiness and a liveness check. Traffic reaches a replica only after readiness passes; a stuck replica is restarted.
health:
path: /healthz # sau tcp: true / or tcp: true
initial_delay: 5
period: 10Securitate implicităDefault security
- Containerul rulează fără drepturi de administrator, cu toate capabilitățile eliminate și profil seccomp implicit.
- Sistemul de fișiere este doar pentru citire;
/tmpși directoarelescratchsunt singurele care pot fi scrise. - Contul de serviciu Kubernetes nu este montat în container.
- The container runs without root, with all capabilities dropped and the default seccomp profile.
- The filesystem is read-only;
/tmpand thescratchdirectories are the only writable ones. - The Kubernetes service account is not mounted into the container.
Imagini care cer drepturi de administratorImages that need root
Unele imagini publice pornesc ca root și vor fi refuzate. Folosiți variante fără privilegii, cum ar fi nginxinc/nginx-unprivileged.
Some public images start as root and will be refused. Use unprivileged variants such as nginxinc/nginx-unprivileged.