Components & Data Flow

The c8s components and the certificate, attestation, and public-routing flows on confidential Kubernetes nodes.

c8s runs ordinary Kubernetes workloads inside confidential nodes. The node is the attested trust unit; pods on it share one TEE boundary. c8s adds attestation verification, a certificate authority, an RA-TLS mesh, image admission, and an attested public router.

Components

ComponentRole
CDSVerifies evidence, serves the image allowlist, signs the mesh CA and workload certificates
c8s operator and webhookReconcile workloads and inject the c8s-cert, secret, and volume sidecars
attestation-apiObtains node TEE evidence; baked into the bare-metal image or deployed by the chart on GKE and AKS
ratls-meshNode DaemonSet that protects service traffic with mutually attested TLS
nri-image-policyFail-closed image admission and sandbox inventory; baked into the bare-metal image or installed on managed nodes
get-certObtains CDS-issued certificates for confidential workloads
get-secret and get-volumeDeliver authorized secrets and encrypted volumes to workloads
routerPublic nginx front door with attestation and allowlist proxy sidecars
volumedNode agent for encrypted volumes; enabled with c8s install --volumes

The operator is control-plane orchestration. A workload certificate is issued only after CDS verifies node evidence, the sandbox token, and the admitted image digests. The inventory binds a process to its pod sandbox using local peer credentials; CDS checks that inventory over RA-TLS. The signed certificate then binds the workload identity to the verified sandbox.

Deployment modes

c8s install requires --cvm-mode=bare-metal, gke, or aks. The self-managed bare-metal image includes the attestation API and image-policy plugin. GKE and AKS use provider node images, so the chart deploys those services on the nodes. All three modes keep the node as one trust domain; see trust boundaries.

Certificate and traffic flow

node evidence -> CDS verification -> workload certificate
public client -> router -> node mesh -> workload
workload -> mutually attested node mesh -> CDS or another workload

The router terminates public TLS and forwards an adopted workload's upstream through its headless Service. The node mesh intercepts that service's pod-IP traffic and wraps the hop in attested mTLS. For an upstream outside c8s-managed service discovery, configure verified HTTPS instead. See install, verification, and the image allowlist.