Skip to main content
Connect your Kubernetes clusters to Skyhook to enable monitoring, resource management, and automated deployments. Skyhook works with existing clusters; no need to provision new infrastructure.
New to Skyhook? Consider using the Onboarding Guide for guided setup. It walks you through cluster connection, ArgoCD installation, and addon configuration automatically.
This guide covers manual cluster connection for users who prefer direct control or already have infrastructure in place.

Supported Cloud Providers

GCP
Google Cloud (GKE)
Fully supported

AWS
AWS (EKS)
Fully supported

Azure
Azure (AKS)
Private Beta
Interested in Azure support? Contact us to join the private beta.

Prerequisites

Before connecting a cluster, ensure you have:

Required

  • Existing Kubernetes cluster running on GKE or EKS
  • kubectl and helm installed locally
  • Cloud provider CLI configured and authenticated (gcloud or aws CLI)
  • Cluster access with permissions to install workloads

Highly Recommended: Cluster Addons

Skyhook works best with these common Kubernetes addons:
Without nginx-ingress and cert-manager, Skyhook can still monitor your cluster, but you’ll need to manually handle ingress configuration and certificate management for your services.

Addon Management: ArgoCD vs Manual Installation

We strongly recommend managing addons with ArgoCD for GitOps-based automation:

Configuring cert-manager ClusterIssuer

  • Via ArgoCD/Skyhook Addon
  • Manual Installation
No manual configuration needed! When you install cert-manager through Skyhook’s addon system (via ArgoCD), a ClusterIssuer is automatically created and configured with Let’s Encrypt.
The addon takes care of:
  • Creating the letsencrypt ClusterIssuer
  • Configuring HTTP01 challenge solver
  • Setting up the necessary secrets
You can view and modify the ClusterIssuer configuration through the Addons page.

Connecting a Cluster

  • Google Cloud (GKE)
  • AWS (EKS)
  • Azure (AKS) - Private Beta

Step 1: Gather Cluster Information

You’ll need:
  • Cluster name (exact name from GCP Console)
  • GCP Project ID (e.g., koala-ops-123)
  • Zone (e.g., us-west1-a) or Region (e.g., us-west1 for regional clusters)
Find these values in the GCP Console.

Step 2: Authenticate to Your Cluster

Make sure gcloud and the GKE auth plugin are installed:
gcloud components install gke-gcloud-auth-plugin
Authenticate to Google Cloud:
gcloud auth login
Get cluster credentials:
gcloud container clusters get-credentials CLUSTER_NAME \
    --zone=COMPUTE_ZONE \
    --project=PROJECT_ID
Verify access:
kubectl cluster-info

Step 3: Register the Cluster

  1. Navigate to Clusters → Connect in the Skyhook UI
  2. Select GCP as the cloud provider
  3. Fill in your cluster details:
    • Cluster name
    • GCP Project ID
    • Zone or Region
  4. Click Register Cluster
Connect cluster form
After registration, you’ll see a helm install command with your cluster’s unique API key.
Helm install command in terminal

Step 4: Install the Cluster Connector

Copy the helm install command from the previous step and run it in your terminal:
helm repo add skyhook https://skyhook-io.github.io/helm-charts
helm repo update
helm upgrade --install skyhook-cluster-connector skyhook/skyhook-cluster-connector \
--namespace skyhook-cluster-connector --create-namespace \
--set apiKey=<YOUR_CLUSTER_API_KEY>
The Cluster Connector will start syncing data to Skyhook in under a minute.

Step 5: Verify Connection

Return to Clusters → List in the Skyhook UI. Your cluster status should change from WAITING FOR CHECK-IN (blue) to ONLINE (green) in under a minute.The Cluster Connector fetches cluster data on-demand when you use the Skyhook UI, ensuring you always see current information without unnecessary polling.

Configuring DNS for Services

To expose services via ingress with custom domains, configure your DNS provider to point to your cluster’s load balancer IP address.

Single Cluster Setup

Find your cluster’s external load balancer IP in the Cluster detail page (Networking section) or in your cloud provider’s console. Create an A record in your DNS provider:
example.com  →  A  →  <CLUSTER_LOAD_BALANCER_IP>
*.example.com  →  A  →  <CLUSTER_LOAD_BALANCER_IP>

Multi-Cluster Load Balancing

If you’re using a global load balancer across multiple clusters, continue managing DNS through your existing setup. Skyhook doesn’t currently automate multi-cluster load balancing.

Troubleshooting

Cluster Status Stuck on “WAITING FOR CHECK-IN”

If your cluster remains in WAITING FOR CHECK-IN status for more than 5 minutes:
  1. Verify the Cluster Connector pod is running:
    kubectl get pods -n skyhook-agent
    
    Expected output: STATUS: Running
  2. Check connector logs for errors:
    kubectl logs -n skyhook-agent -l app=skyhook-agent --tail=50
    
  3. Common issues:
    • Firewall blocking egress: Ensure your cluster can reach *.skyhook.io on port 443
    • Wrong API key: Verify you used the helm command from the Skyhook UI (includes correct API key)
    • RBAC permissions: The agent needs cluster-wide read permissions (automatically configured by the helm chart)

Permission Errors During Helm Install

Make sure you have admin permissions in the cluster:
kubectl auth can-i create clusterrole
If you see “no”, contact your cluster administrator for the necessary permissions.

Next Steps