Product Customization in k8or Orbit
By Anna V. April 1, 2025. Revised. Version: 0.0.02
API Gateways, Container Runtimes, Databases, Key Management, and Chaos Engineering and Several Other Categories.
1. Introduction
While a base K8s cluster often meets general deployment needs, certain specialized product categories can be crucial for specific organizational requirements. Whether it’s securing API traffic with a gateway, adopting a specific container runtime, or implementing advanced chaos engineering to test resilience, k8or Orbit can integrate these open source products in a consistent and automated manner.
This document outlines the steps, considerations, and best practices for each category and how to weave them into your cluster using the orbit-plane’s existing configuration pipelines (Helm, Kustomize, Argo CD, etc.).
2. API Gateways
Why API Gateways?
Enforce advanced routing rules (blue/green, canary releases).
Provide centralized authentication, rate limiting, and TLS termination.
Observability: capturing request logs, metrics, or tracing.
Popular Open Source Solutions
Kong
Extensible with Lua-based plugins, wide community.
Good for high traffic, includes built-in load balancing and service discovery.
NGINX Ingress Controller
Commonly used as an ingress solution in Kubernetes, can add advanced rewrites, SSL termination.
Traefik
Focused on dynamic configuration, with built-in Let’s Encrypt support and easy integration with Docker labels or CRDs.
Integration Steps in k8or Orbit
Deployment with Helm or Kustomize
The orbit-plane’s CI/CD triggers chart installation for your gateway of choice.
Example:
helm install kong/kong --values my-values.yaml
.
Configure Gateway CRDs
For Kong or Traefik, define CRDs that handle routes, services, authentication plugins.
Secrets & Certificates
Store certificates in a secure location (e.g., Vault, k8s secrets). Let the gateway retrieve them from your dedicated K8s secrets or external store.
Where Contributors Help
Designing advanced route rules (blue/green or canary).
Integrating the gateway with AccessPoint for role-based traffic control.
Setting up performance monitoring or custom plugin development.
3. Container Runtimes
Why Container Runtime Customization?
Some orgs need specialized runtimes (e.g., containerd, CRI-O) for performance, security features, or resource footprints.
Comply with existing on-prem standards or HPC (High Performance Computing) workloads.
Common Runtimes
Docker (Moby)
Historically the default, but it’s being replaced in K8s 1.20+ by containerd or CRI-O.
containerd
Lightweight, used under Docker’s hood, now widely adopted as a direct CRI (Container Runtime Interface) implementation.
CRI-O
A minimal container runtime focusing on open standards, used in Red Hat’s ecosystems.
Integration Steps
Cluster Provisioning
At cluster creation time (via K8Rngr or Terraform), specify the container runtime (e.g., containerd).
For K3s, it typically uses containerd by default; you can override config if needed.
Security Hardening
If you need advanced solutions like SELinux or AppArmor, adjust container runtime configs and node OS settings.
Pipeline Adjustments
Ensure your CI pipeline builds images that are runtime-agnostic if possible. If HPC workloads need specialized runtimes, incorporate that into your pipeline scripts.
Where Contributors Help
Evaluate performance differences between containerd and CRI-O for your workloads.
Provide best practices for HPC or GPU-based containers.
Integrate runtime configurations with cluster bootstrap scripts.
4. Databases (In-Cluster or External)
Why Customizing Database Setup?
Some workloads require ephemeral test DBs or persistent external DB instances with advanced replication.
Data persistence and schema migrations must align with organizational standards (e.g., backups, encryption).
Popular Solutions
PostgreSQL Operators
CrunchyData, Zalando, or community operators for Postgres.
MySQL Operators
MySQL or MariaDB operators for automating DB creation, backups, or cluster-scale replication.
NoSQL
For Cassandra, MongoDB, or DynamoDB-like setups, operators or bridging external services can be integrated.
Integration Steps
Operator Installation
Deploy a Helm chart or Kustomize overlay for your chosen DB operator.
Example:
helm install postgresql-operator .
in your environment repo.
CRD Definition
Create CRs (Custom Resources) that specify DB size, backups, or user credentials.
Possibly store or generate secrets via Vault or a k8s secret to handle DB passwords.
CI/CD Pipeline
A pipeline stage might auto-provision ephemeral DBs for test environments, cleaning them up post-tests.
Where Contributors Help
Reviewing high availability or multi-AZ designs.
Integrating with NetOptimizer if you need multi-region DB traffic routing.
Ensuring secure secrets distribution with your existing KMS or Vault.
5. Key Management (Secrets & Certificates)
Why Key Management?
Encrypted data, secure TLS certificates, and identity tokens require robust storage and rotation.
Meeting compliance demands (PCI-DSS, HIPAA) often requires advanced auditing and centralized management.
Tools & Approaches
HashiCorp Vault
Dynamic secret provisioning, automatic rotation of DB passwords, PKI certificate issuance.
Sealed Secrets
Encrypts secrets via public key, storing them safely in Git while only being decrypted in the cluster.
KMS Integration
Leverage AWS KMS, GCP KMS, or Azure Key Vault for storing encryption keys used by your cluster.
Integration Steps
Deploy a Secrets Operator
If using Sealed Secrets or Vault Operator, apply the CRDs.
Store your organizational public keys for encryption or provisioning tokens for Vault access.
Update Pipeline
Replace plaintext secrets in your Helm charts with references to Vault or sealed secrets.
The pipeline retrieves these secrets from a secure location, injecting them at deployment time.
Where Contributors Help
Architecting zero-trust or “no plaintext secrets in Git” workflows.
Creating secure pipelines that automatically fetch and rotate secrets.
Auditing compliance with your existing identity providers.
6. Chaos Engineering
Why Chaos Engineering?
Evaluate how your system responds to failures—node crashes, network latency, or container resource exhaustion.
Build resilience by systematically injecting failures and measuring service continuity.
Tools
Chaos Mesh
Kubernetes-native chaos injection framework for pods, networks, and IO disruptions.
Litmus
Another popular framework offering chaos experiments (pod delete, container kill, CPU hog, etc.).
Istio Fault Injection
If using Istio, you can define virtual service rules that artificially inject delay or return errors.
Integration Steps
Install the Chaos Tool
Deploy Chaos Mesh or Litmus in your cluster with Helm.
helm install chaos-mesh ...
, for instance.
Define Chaos Experiments
Create CRs specifying the chaos scenario, e.g., “kill 1 random dev-namespace pod every 2 hours.”
Optionally link them to CI/CD tests or scheduled windows.
Monitor & Observability
Use the Orbit plane’s observability stack (ClusterWatch, HelloScope) to measure the effect.
Alert if certain SLOs degrade beyond an acceptable threshold.
Where Contributors Help
Designing chaos experiments that align with your SLA requirements.
Integrating results into CI pipelines (failing a build if resilience is below standard).
Setting up “chaos days” or specific intervals for planned resilience testing.
7. Takeway
Product Customization in the k8s environment often spans these categories:
API Gateways – to handle advanced routing, security, and traffic shaping.
Container Runtime – to optimize or secure container execution.
Databases – to manage data in-cluster or seamlessly connect external DB solutions.
Key Management – to handle encryption keys, secrets, and compliance demands.
Chaos Engineering – to actively test and improve cluster resilience.
Each approach requires:
Planning (determining which open source solution suits your scenario)
Implementation (deploying via Helm, Kustomize, or operator patterns)
Integration (tying into the orbit-plane’s CI/CD, logging, and AccessPoint)
Maintenance (ongoing version upgrades, security patches, and expansions)
k8or Orbit contributors are poised to help:
Assess your environment and organizational needs,
Design an integration strategy for each product category,
Implement the solutions into your cluster’s bootstrap or continuous deployment process,
Support operational tasks like updates, monitoring, or advanced custom features.
Last updated