ops0ops0

Kubernetes Clusters

Monitor connected Kubernetes clusters, view workloads, and access pod terminals from a unified dashboard.

Supported Providers

AWS EKS
Amazon Elastic Kubernetes Service
Google GKE
Google Kubernetes Engine
Azure AKS
Azure Kubernetes Service
Self-Managed
Any cluster with kubeconfig access

Cluster Card

Each connected cluster displays:

FieldDescription
NameDisplay name you assigned
ProviderEKS, GKE, AKS, or Self-managed
StatusConnection state
VersionKubernetes version (e.g., 1.28.2)
NodesTotal node count
PodsRunning pod count
NamespacesNamespace count

Connection Status

StatusColorMeaning
ConnectedGreenActive connection via Hive agent or direct
DisconnectedRedCannot reach cluster API
ErrorRedAuthentication or network error
PendingYellowConnection in progress

Cluster Detail Tabs

Overview
Cluster info, resource summary, CPU/memory usage
Incidents
Auto-detected issues (CrashLoop, OOM, etc.)
Resource Graph
Visual map of deployments, services, pods
Pods
Pod list with logs, terminal, events access

Resource Summary

The Overview tab shows real-time metrics:

Nodes:       12 (12 Ready)
Namespaces:  8
Pods:        156 (150 Running, 4 Pending, 2 Failed)
Services:    42
Deployments: 35

Resource utilization bars display CPU and memory usage against cluster capacity.

Cluster Actions

ActionDescription
View DetailsOpen cluster detail page
Test ConnectionVerify API connectivity
Refresh StatsFetch latest metrics
EditUpdate name or settings
DeleteRemove cluster from ops0

Prerequisites by Provider

AWS EKS
AWS Integration configured with eks:DescribeCluster and eks:ListClusters permissions, plus Kubernetes RBAC.
Google GKE
GCP service account with roles/container.clusterViewer and roles/container.developer for exec access.
Azure AKS
Service principal with AKS access and Azure AD tenant configuration.
Self-Managed
Valid kubeconfig with API server network access and appropriate RBAC permissions.
Hive Agent Recommended
For real-time log streaming, pod exec, and metrics collection, install the Hive agent in your cluster. See Add Cluster for installation instructions.

Multi-Cloud Cluster Discovery

Automatically discover Kubernetes clusters in your cloud accounts.

AWS EKS Discovery

Discover all EKS clusters in your AWS account:

  1. Navigate to Kubernetes → Add Cluster
  2. Select "Discover EKS Clusters"
  3. Choose AWS integration
  4. Select regions to scan
  5. View discovered clusters
  6. Click "Connect" on clusters to add

Required Permissions:

  • eks:ListClusters
  • eks:DescribeCluster

Discovery Results:

Cluster NameRegionVersionStatusAction
production-eksus-east-11.28ActiveConnect
staging-eksus-east-11.28ActiveConnect
dev-eksus-west-21.27ActiveConnect

Google GKE Discovery

Discover all GKE clusters in your GCP project:

  1. Navigate to Kubernetes → Add Cluster
  2. Select "Discover GKE Clusters"
  3. Choose GCP project
  4. View discovered clusters
  5. Click "Connect" on clusters to add

Required Permissions:

  • container.clusters.list
  • container.clusters.get

Azure AKS Discovery

Discover all AKS clusters in your Azure subscription:

  1. Navigate to Kubernetes → Add Cluster
  2. Select "Discover AKS Clusters"
  3. Choose Azure subscription
  4. Select resource groups (or all)
  5. View discovered clusters
  6. Click "Connect" on clusters to add

Required Permissions:

  • Microsoft.ContainerService/managedClusters/read
  • Microsoft.ContainerService/managedClusters/listClusterUserCredential/action

Token Refresh

Cloud provider tokens expire and need periodic refresh:

EKS Tokens:

  • Expire after 15 minutes
  • Auto-refreshed by ops0 before expiration
  • Uses AWS STS presigned URLs

GKE Tokens:

  • Expire after 1 hour
  • Auto-refreshed using OAuth2 refresh tokens
  • Service account must remain valid

AKS Tokens:

  • Expire after 1 hour
  • Auto-refreshed using Azure OAuth2
  • Service principal must remain valid

If Token Refresh Fails:

  • Cluster shows "Disconnected" status
  • Check cloud integration credentials
  • Verify IAM permissions
  • Re-authenticate integration if needed

Example: Production Cluster Overview

Cluster List View

NameProviderStatusVersionNodesPodsIncidents
production-eksAWS EKSConnected1.28.2121562 open
staging-eksAWS EKSConnected1.28.2442-
dev-clusterGKEConnected1.27.8218-
on-prem-k8sSelf-managedDisconnected1.26.560-

Cluster Detail: production-eks

Overview Tab:

Cluster Information
─────────────────────────────────────
Name:           production-eks
Provider:       AWS EKS
Region:         us-east-1
Version:        1.28.2
Created:        2023-06-15
Hive Agent:     v2.1.0 (Connected)

Resource Summary
─────────────────────────────────────
Nodes:          12 (12 Ready)
Namespaces:     8
Pods:           156 (150 Running, 4 Pending, 2 Failed)
Services:       42
Deployments:    35
StatefulSets:   4
DaemonSets:     6

Resource Utilization
─────────────────────────────────────
CPU:    ████████████████░░░░ 78%   (93.6 / 120 cores)
Memory: ██████████████░░░░░░ 68%   (326 / 480 GB)

Node List:

NodeStatusCPUMemoryPodsAge
ip-10-0-1-45.ec2.internalReady82%71%18/3045d
ip-10-0-1-78.ec2.internalReady75%68%15/3045d
ip-10-0-2-12.ec2.internalReady89%82%22/3030d
ip-10-0-2-34.ec2.internalReady65%55%12/3030d

Resource Graph

Deployment: api-gateway (3 replicas)
    │
    ├─ ReplicaSet: api-gateway-7d9f8c6b4d
    │      │
    │      ├─ Pod: api-gateway-7d9f8c6b4d-2xkjp (Running)
    │      ├─ Pod: api-gateway-7d9f8c6b4d-9vwrt (Running)
    │      └─ Pod: api-gateway-7d9f8c6b4d-kp3mn (Running)
    │
    └─ Service: api-gateway (ClusterIP:80 → 3000)
           │
           └─ Ingress: api-gateway-ingress (api.example.com)