Skip to main content
RubixKube runs on every conformant Kubernetes cluster on v1.24 or later. One kubectl apply installs the Observer into a dedicated namespace. Everything else runs in RubixKube Cloud. This page covers the install, what it deploys, common troubleshooting, and how to uninstall cleanly.

Prerequisites

kubectl configured

kubectl get nodes should succeed against the target cluster.

Cluster admin permissions

Required to create the rubixkube-system namespace, service account, and ClusterRole.

Outbound HTTPS

api.rubixkube.ai:443 and nats.rubixkube.ai:443 reachable from the cluster.

A RubixKube workspace

Sign in at console.rubixkube.ai. Create a new environment for this cluster.

Install

Copy the personal install command from the console. Your API key (prefix rk_) is already embedded.
kubectl apply -f "https://api.rubixkube.ai/install/observer.yaml?apiKey=rk_YOUR_API_KEY"
Always copy the command from the console. The embedded API key scopes the Observer to your workspace.
You should see:
namespace/rubixkube-system created
serviceaccount/rubixkube-observer created
clusterrole.rbac.authorization.k8s.io/rubixkube-observer created
clusterrolebinding.rbac.authorization.k8s.io/rubixkube-observer created
deployment.apps/rubixkube-observer created

Verify

1

Check the pod

kubectl get pods -n rubixkube-system
Wait for STATUS to show Running:
NAME                                  READY   STATUS    RESTARTS   AGE
rubixkube-observer-7d4b9c8f6d-abc12   1/1     Running   0          2m
2

Tail the logs

kubectl logs -n rubixkube-system deployment/rubixkube-observer --tail=20
Expect to see Connected to api.rubixkube.ai and topology sweep messages within the first minute.
3

Confirm in the console

Open Environments in the console. The environment card should switch from Connecting to Healthy and the Infrastructure view should populate with nodes, namespaces, and workloads.

What is being monitored

The Observer collects signals for every native Kubernetes object plus the common extensions.
SignalDetail
PodsState, restart count, resource usage, owner references
Deployments, StatefulSets, DaemonSetsReplica health, rollout state, condition history
Services and IngressEndpoint health, routing, LoadBalancer status
NodesCPU, memory, disk, allocatable and capacity, pressure conditions
EventsCluster event bus, filtered and streamed structurally
PVs and PVCsBinding state, storage class, capacity
ConfigMaps and Secrets (metadata only)Names, keys, revision. No values unless explicitly enabled

Footprint

The Observer is deliberately light.
  • About 255Mi RAM combined for Observer and the Kubernetes MCP server.
  • Under 10 millicores of CPU during normal operation.
  • Scales modestly with cluster size. Expect another 50Mi of RAM per 100 nodes.
Cloud-side agents (RCA Pipeline, Memory, Guardian, Remediation) run in RubixKube Cloud. Your cluster hosts only the Observer.

KIND and local development

Same install command works on KIND. Useful when you want to evaluate without touching a real cluster.
kind create cluster --name rubixkube-test
kubectl apply -f "https://api.rubixkube.ai/install/observer.yaml?apiKey=rk_YOUR_API_KEY"
KIND is the path most teams use for the tutorials before running against real infrastructure.

Troubleshooting

The cluster cannot reach the Observer image registry. Check outbound egress to api.rubixkube.ai:443:
kubectl run test-curl --image=curlimages/curl -i --rm -- curl -I https://api.rubixkube.ai
If this fails, your cluster is behind a proxy or egress policy. Allowlist the two endpoints or reach out for an air-gapped deployment path.
Almost always an invalid API key. Check the logs:
kubectl logs -n rubixkube-system deployment/rubixkube-observer --previous
If you see 401 Unauthorized or invalid api key, reinstall with the command copied fresh from the console.
Three common causes:
  1. Pod is not Running yet. Recheck kubectl get pods -n rubixkube-system.
  2. Outbound HTTPS to nats.rubixkube.ai:443 is blocked. The control channel runs over HTTPS but the streaming channel uses NATS.
  3. Clock skew on the node. Ensure NTP is running.
Rare, but possible on very large clusters. Edit the deployment to raise limits, or reach out and we will help you size the Observer for your cluster shape.
kubectl edit deployment rubixkube-observer -n rubixkube-system

AKS and Azure

AKS clusters are supported today on the Kubernetes path. Install exactly as you would on EKS or GKE. Subscription-level Azure observation (App Service, Azure VMs) is on the roadmap, see Azure.

Uninstall

kubectl delete -f "https://api.rubixkube.ai/install/observer.yaml?apiKey=rk_YOUR_API_KEY"
This removes the namespace, service account, ClusterRole, binding, and deployment. The environment card in the console can then be deleted.

Connect your environment

The full install flow covering every supported environment.

Observer Agent concept

What the Observer does, where it runs, what it sees.

First tutorial

Monitor infrastructure health once the Observer is live.