Skip to content

Add-ons

Je gehoste control plane heeft geen plan: je stelt de vorm in (1 tot 3 API-servers, een state-limiet) en legt daar add-ons bovenop. Deze pagina is de praktische aanvulling op Prijzen: wat elke add-on je echt oplevert, hoe je hem gebruikt en, waar van toepassing, een commando om te plakken.

Je kiest add-ons in de dashboard: in de aanmaakwizard, en later onder Instellingen → Plan van het cluster (de kaart Add-ons op de clusterpagina toont alleen wat er is geïnstalleerd). De kubehz-operator vertaalt je keuze naar de bijbehorende Kubermatic-(KKP-)instellingen op je control plane; je bewerkt KKP nooit rechtstreeks.

Apps zijn geen add-ons

Add-ons zijn control-plane-opties. Software die in je cluster draait, komt uit de app-catalogus op het tabblad Applicaties van het cluster: kies een app en een versie, geef optioneel Helm-values mee, en de operator installeert hem (GET /api/catalog/apps, PUT /api/clusters/{id}/apps/{name}). Vandaag bevat de catalogus cert-manager; meer apps volgen zodra ze zijn beoordeeld.

Inbegrepen vs. add-on

Twee dingen die je als add-on verwacht, zijn dat niet, omdat ze ingebouwd zijn:

  • etcd-back-ups: geplande snapshots zijn inbegrepen in elk gehost control plane, standaard aan. Zie etcd-back-ups hieronder voor wat dat betekent.
  • Hoge beschikbaarheid: HA is het aantal API-servers dat je instelt (3× API-server), geen aparte post. Stel er drie in en je hebt het.

Add-ons in het kort: elke add-on hieronder is € 0 tot 1 november 2026. Dit zijn de lijstprijzen die daarna ingaan (zie Prijzen):

€ 0 tot 1 november 2026

Add-onPrijs vanaf 1 november 2026MaandplafondVereist
Cluster-webdashboard (Headlamp)€ 0,001/uur€ 0,73/maandelke vorm
OPA / Gatekeepergratisgratiselke vorm
etcd-back-upsinbegrepeninbegrepenelk control plane
Auditlogging€ 0,001/uur€ 0,73/maandelke vorm
Monitoring€ 0,010/uur€ 7,30/maandelke vorm
Logging€ 0,008/uur€ 5,84/maand3 API-servers
Toegewijde nodes€ 0,018/uur€ 13,14/maand3 API-servers

Hoe de meter werkt. kubehz factureert elk begonnen uur volledig. De facturering begint zodra je de resource aanmaakt. kubehz factureert de resource zolang ze bestaat, in welke staat dan ook; alleen verwijderen stopt de kosten. De uurbedragen van één eenheid komen nooit boven haar maandprijs uit: het €/maand-bedrag is het uurtarief vermenigvuldigd met 730 uur en is een maximum, ook in een maand van 31 dagen. Add-ons worden apart gefactureerd. Een add-on die een verwijdering overleeft, wordt gefactureerd tot je ook de add-on verwijdert. Zie Prijzen.

Eén prijs staat buiten deze lijst omdat het geen add-on is: een statische node, een worker-node die je zelf meebrengt, kost € 0,001/uur per node, hooguit € 0,73/maand, gefactureerd per uur dat hij Ready meldt. Een NotReady-node is de enige uitzondering op de regels hierboven: kubehz factureert hem nooit. Zie Statische nodes.

Cluster-webdashboard (Headlamp)

Wat het inschakelt. Een gehost Headlamp-webdashboard voor je cluster, door kubehz naast je control plane gedraaid en gepubliceerd op een direct bereikbare publieke URL:

text
https://dash-<cluster-id>.kubehz.cloud

Open het vanaf de detailpagina van het cluster in de kubehz-dashboard (knop Dashboard openen). Je logt in met je kubehz-account (dezelfde SSO-login als het platform), en wat je kunt zien en doen volgt je Kubernetes-RBAC: Headlamp stuurt jouw eigen identiteitstoken door naar de API-server en heeft zelf geen admin-credentials. Geen kubeconfig, geen proxy, geen tweede wachtwoord.

Het kost € 0,001/uur, hooguit € 0,73/maand, op elke vorm, en je kunt het overal uitvinken. De aanmaakwizard vinkt geen enkele add-on voor je aan; deze vink je zelf aan. Headlamp verving de verouderde upstream-kubernetes-dashboard achter deze add-on (2026-07): zelfde optie, zelfde prijs, een duidelijk betere toegangsroute.

Liever een lokale app? Headlamp desktop opent hetzelfde cluster met je gedownloade kubeconfig, geen add-on nodig. Het is ook de dashboard-route voor self-hosted clusters.

Terugvaloptie: kubectl proxy. Een cluster waarop nog de oude in-cluster kubernetes-dashboard draait, blijft bereikbaar via de service-proxy van de API-server, geauthenticeerd met je eigen kubeconfig:

  1. Download de kubeconfig van het cluster uit de kubehz-dashboard (detailpagina van het cluster).

  2. Start een lokale proxy naar de API-server:

    bash
    kubectl --kubeconfig ./kubeconfig proxy
  3. Open de service-proxy-URL van het dashboard in je browser:

    text
    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

De proxy neemt je kubeconfig over, dus het dashboard ziet precies wat je met kubectl zou zien, niet meer.

OPA / Gatekeeper

Wat het inschakelt. OPA Gatekeeper-policyhandhaving in je cluster: validatie van resources op admissie-tijd tegen policies die je schrijft als ConstraintTemplate + Constraint-objecten. Het is gratis en beschikbaar op elke vorm. De operator koppelt dit aan opaIntegration.enabled van KKP; de Gatekeeper-componenten draaien in je cluster.

Hoe je het gebruikt. Zodra de add-on aan staat, pas je een ConstraintTemplate toe (definieert een herbruikbare regel) en daarna een Constraint (past hem toe op specifieke kinds). De klassieker om te beginnen is “elke namespace moet een owner-label hebben”:

Toon de volledige ConstraintTemplate + Constraint YAML
yaml
# 1. De template: een herbruikbare "required labels"-regel.
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
  name: k8srequiredlabels
spec:
  crd:
    spec:
      names:
        kind: K8sRequiredLabels
      validation:
        openAPIV3Schema:
          type: object
          properties:
            labels:
              type: array
              items:
                type: string
  targets:
    - target: admission.k8s.gatekeeper.sh
      rego: |
        package k8srequiredlabels
        violation[{"msg": msg}] {
          provided := {label | input.review.object.metadata.labels[label]}
          required := {label | label := input.parameters.labels[_]}
          missing := required - provided
          count(missing) > 0
          msg := sprintf("you must provide labels: %v", [missing])
        }
---
# 2. De constraint: vereis een `owner`-label op elke Namespace.
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
  name: ns-must-have-owner
spec:
  match:
    kinds:
      - apiGroups: [""]
        kinds: ["Namespace"]
  parameters:
    labels: ["owner"]

Sla beide documenten op als required-labels.yaml en pas ze daarna toe:

bash
kubectl apply -f required-labels.yaml

Hoe handhaving eruitziet. Daarna wordt een namespace zonder owner-label bij admissie geweigerd:

console
$ kubectl create namespace demo
Error from server (Forbidden): admission webhook "validation.gatekeeper.sh" denied
the request: [ns-must-have-owner] you must provide labels: {"owner"}

Maak de namespace in plaats daarvan meteen mét het label aan, en hij wordt toegelaten:

bash
kubectl apply -f - <<EOF
apiVersion: v1
kind: Namespace
metadata:
  name: demo
  labels:
    owner: platform-team  # elke waarde — de policy vereist alleen de sleutel
EOF

etcd-back-ups

Wat het inschakelt. Geplande snapshots van de etcd van je control plane, de datastore achter elk object in je cluster (Deployments, Secrets, CRD’s, alles). Dit is inbegrepen in elk gehost control plane, standaard aan; er is niets te kopen of in te schakelen. De operator levert een EtcdBackupConfig van KKP voor je cluster.

Schema en bewaring. Back-ups draaien elke 6 uur (cron 0 */6 * * *) en de laatste 20 snapshots worden bewaard; oudere worden automatisch opgeruimd. Snapshots worden weggeschreven naar door kubehz beheerde objectopslag in de EU. Je beheert geen bucket.

Eenmalige snapshots en herstel. Naast het schema kun je zelf een snapshot maken, vóór een riskante wijziging, en herstellen vanaf elke snapshot die je hebt. Beide zijn selfservice: de sectie Back-ups op de clusterpagina, of de API (POST /api/clusters/{id}/snapshots met een name, GET om ze op te sommen, DELETE .../snapshots/{name} om er een te verwijderen, en de herstelactie op een snapshot). Een herstel is een KKP-EtcdRestore op je control plane: de API-server is de paar minuten die het duurt niet beschikbaar, en elk object dat sinds de snapshot is gewijzigd, is weg. Wil je liever dat iemand meekijkt, vraag het dan in de chat voordat je erop drukt.

Auditlogging

Wat het inschakelt. Kubernetes-API-auditlogging op je control plane: een registratie van wie wat tegen de API-server heeft gedaan (requests, subjecten, werkwoorden, resources). € 0,001/uur, hooguit € 0,73/maand, op elke vorm. De operator koppelt dit aan auditLogging van KKP met een vaste policy-preset.

Welke preset wordt toegepast. kubehz schakelt de auditpolicy-preset recommended in, een gebalanceerd niveau dat de beveiligingsrelevante operaties vastlegt zonder het volume van een volledige request/response-stroom. (De preset ligt vast; er is geen policy-editor per cluster.)

Waar de events heen gaan. Auditevents worden uitgezonden door de API-server op je control plane. Kies op de clusterpagina (of met PUT /api/clusters/{id}/audit-delivery) een aflevering voor ze: webhook post elke batch naar een HTTPS-endpoint van jou (met een optionele CA-bundel), s3 schrijft ze naar een S3-compatibele bucket die je zelf bezit (endpoint, bucket, prefix, access key), none houdt ze alleen op het control plane. Om ze te doorzoeken, combineer je de add-on met Logging, dat je een plek geeft om ze op schaal te lezen.

Monitoring

Wat het inschakelt. Per cluster verzamelde metrics uit je cluster, verstuurd naar het kubehz-platform. € 0,010/uur, hooguit € 7,30/maand, op elke vorm. Je schakelt het in via de kubehz-dashboard: bij het aanmaken in de add-on-opties van de wizard, of later onder Instellingen → Plan van het cluster. Een Prometheus draait in je cluster en voedt het platform; je draait of schaalt het niet zelf.

Wat de kosten dekken. De platformkant: multi-tenant metricsopslag met 15 dagen bewaring, het querypad van de dashboard en alerting, gedraaid en beheerd door kubehz. Aan jouw kant draait alleen een lichte collector op je eigen workers; het bedrag betaalt ons backend en onze opslag, niet jouw compute.

Wat er wordt verzameld. Cluster- en node-gezondheid, resourcegebruik van control plane en workloads (de standaard Kubernetes-/cAdvisor-/kube-state- signalen), zo krijg je CPU-, geheugen-, pod- en node-metrics door de tijd zonder je eigen Prometheus op te zetten.

Waar je het ziet. Metrics verschijnen in de sectie Monitoring van de kubehz-dashboard, op de clusterpagina.

Alerting. Dezelfde sectie bevat ook je alertregels en receivers. Een regelgroep is een Prometheus-regelbestand voor metrics of logs (PUT /api/clusters/{id}/monitoring/rules/{name} met de YAML in data); een receiver is een webhook-URL of een email-adres (PUT .../monitoring/receivers/{name}). Abonneer je eigen account op de alertmails van het cluster met POST /api/clusters/{id}/alerts/subscription, of met de schakelaar op dezelfde pagina.

Logging

Wat het inschakelt. Per cluster logaggregatie, op basis van Loki, via dezelfde platformstack. € 0,008/uur, hooguit € 5,84/maand; het vereist de vorm met drie API-servers. Net als monitoring schakel je het in via de kubehz-dashboard: bij het aanmaken in de add-on-opties van de wizard, of later onder Instellingen → Plan van het cluster. Een collector in promtail-stijl draait in je cluster en stuurt pod-logs naar de Loki van het platform; Loki draai je niet zelf.

Wat de kosten dekken. De platformzijdige ingest, de 7 dagen logopslag en het querypad achter de logbrowser van de dashboard, gedraaid en beheerd door kubehz. De collector op je nodes is van jou en marginaal; het bedrag betaalt ons backend en onze opslag.

Bewaring. De add-on bevat 7 dagen logbewaring: de laatste week aan logs is opvraagbaar, oudere data verloopt.

Waar je het ziet. Logs verschijnen in de kubehz-dashboard naast monitoring. Net als de monitoring-weergave wordt de logbrowser in de dashboard uitgerold; het verzamelen en de 7-dagen-bewaring levert de add-on vandaag, en het is ook de natuurlijke metgezel van Auditlogging om auditevents te lezen.

Toegewijde nodes

Wat het inschakelt. Plaatst je control plane op toegewijd bare metal in de kubehz-vloot in plaats van op gedeelde cloud-VM’s: stabielere, geïsoleerde prestaties voor de control plane. € 0,018/uur, hooguit € 13,14/maand; het vereist de vorm met drie API-servers. De operator stuurt je control plane naar metal-class-nodes (een plaatsingswijziging, geen resize).

Live-migratie bij omschakelen. Toegewijd is omkeerbaar: aanzetten (of uitzetten) triggert een live-migratie van de control plane naar (of van) de metal-pool: de operator verplaatst de workload; je bouwt het cluster niet opnieuw.

Capaciteitsgating (het eerlijke deel). Bare metal is een schaarse, bewust beperkte pool. Daarom is toegewijd capaciteitsgated bij provisioning: staat de metal-pool op zijn ondergrens, dan kan de optie tijdelijk niet bestelbaar zijn, zelfs op een pro-cluster. Dat is bewust (metal wordt toegevoegd wanneer de vraag het rechtvaardigt) en alleen pro, zodat wegwerp-clusters de schaarse capaciteit niet opsouperen. Is het bij je poging niet beschikbaar, dan opent het naarmate er capaciteit wordt toegevoegd.

Volgende stappen


Documentstatus

AspectDetail
Staatadd-ons live; snapshots, herstel, auditaflevering en alerting als selfservice; logbrowser in de dashboard wordt uitgerold
Laatst herzien2026-09-05