SEAGIT DOCS
Clusters

Kubernetes Clusters

Create and manage production-grade Kubernetes clusters on AWS EKS with automated setup and best practices built-in.

What is Kubernetes?

Kubernetes (K8s) is an open-source container orchestration platform that automates deployment, scaling, and management of containerized applications.

Key Benefits:

  • Auto-scaling - Scale applications based on demand
  • Self-healing - Automatically restart failed containers
  • Load balancing - Distribute traffic across pods
  • Rolling updates - Deploy without downtime
  • Service discovery - Automatic DNS for services

Enterprise Features

SeaGit provides production-ready EKS clusters with automated setup and enterprise-grade features out of the box:

Node Group Management

  • On-demand node groups - Reliable compute for production workloads
  • Spot node groups - Up to 90% cost savings with correct override structure
  • Fast node provisioning - Nodes reach Ready state in ~60 seconds
  • Instance refresh - Rolling updates for node groups with zero downtime

Networking & Security

  • VPC CNI initialization - Automatic setup with proper ready states
  • IAM policies - Worker, ECR, CNI, and SSM policies attached automatically
  • Access entries - Automated IAM to Kubernetes RBAC mapping

Auto-scaling & Reliability

  • Cluster Autoscaler - Automatic node group discovery and scaling
  • Node Termination Handler - Monitors instances and raises resiliency bar of your clusters
  • Scheduled terminations - Enable through action rules to cut costs by 30% or more

💡 Cost Optimization Tip

Combine spot instances with scheduled terminations to achieve at least 30% cost reduction on non-production environments while maintaining reliability through Node Termination Handler.

Creating a Cluster

Prerequisites

Step 1: Navigate to Clusters

  1. Go to OrganizationClusters
  2. Click "+ Create Cluster"

Step 2: Select Network

Choose the VPC network where your cluster will be deployed.

Step 3: Configure Node Groups

On-Demand Nodes:

  • Instance type: t3.medium, t3.large, t3.xlarge
  • Min nodes: 2 (high availability)
  • Max nodes: 10 (auto-scaling limit)
  • Disk size: 20-100 GB

Spot Instances (Optional):

  • Up to 90% cost savings
  • Can be interrupted with 2-minute warning
  • Best for: dev, test, batch processing

Step 4: Install Add-ons

SeaGit supports 12 cluster add-ons. Recommended for production:

  • ALB Controller - AWS Load Balancer integration
  • Cert-Manager - Automatic TLS certificates
  • External DNS - Auto DNS record management
  • Prometheus - Metrics and monitoring

Step 5: Create

Creation Time: 15-20 minutes

Cluster Add-ons

1. AWS Load Balancer Controller (ALB)

Automatically provisions AWS Application Load Balancers for ingress resources.

2. NGINX Ingress Controller

Alternative ingress controller with more flexibility than ALB.

3. Cert-Manager

Automates TLS certificate issuance and renewal using Let's Encrypt.

4. External DNS

Automatically creates DNS records in Route53, Cloudflare, or PowerDNS. It watches your ingresses and keeps every record pointed at the load balancer that is currently live — which means your app URLs keep working even if the load balancer behind them is replaced (see DNS & Domains).

5. ArgoCD

GitOps continuous delivery tool for Kubernetes.

6. Prometheus

Monitoring and alerting toolkit.

kubectl Access

# Update kubeconfig
aws eks update-kubeconfig --name cluster-name --region us-east-1

# Test connection
kubectl get nodes

# View pods
kubectl get pods -A

Stopping & Starting a Cluster

A cluster can be stopped when you don't need it — most commonly a development cluster outside working hours, on a schedule set with Action Rules. Stopping is reversible; terminating is not.

Stopping

  • Every node group scales to zero and your workloads stop.
  • The cluster's load balancers are released, so you are not billed for idle load balancers while it sits stopped.
  • Everything else is preserved: cluster and node group configuration, domains, DNS records, TLS certificates, and persistent volumes.

Starting

  • Node groups scale back up to their configured size.
  • The ingress controller rebuilds the load balancer automatically, and external-dns re-points your DNS records at it.
  • Your app URLs are unchanged. Allow a few minutes for the load balancer to come up before they answer.

⚠️ Don't point external DNS at the raw load balancer hostname

A rebuilt load balancer gets a new *.elb.amazonaws.com hostname. Always CNAME your own domains to your SeaGit deployment URL, which is stable. See DNS & Domains.

A stopped cluster still bills for the managed control plane, the NAT gateway, and any persistent volumes. Terminate the cluster to remove those as well.

Cluster Actions & Protection Gates

Every cluster has a small set of lifecycle actions in its header. Some are reversible, some are not, and SeaGit adds guardrails so a single click can never silently destroy running deployments.

The actions

ActionWhat it doesReversible?
StartScales your node groups back up to their configured size. The ingress controller rebuilds the load balancer and external-dns re-points your records — your app URLs are unchanged.Yes
StopScales worker nodes to zero. Workloads pause; no infrastructure is destroyed. Everything (config, domains, DNS, certificates, volumes) is preserved and resumes on Start.Yes
TerminateDestroys the cluster and every deployment running on it, and releases its infrastructure.No
DeleteRemoves the cluster record from SeaGit. Only available once a cluster has already been terminated.No

Deployment protection gate

Stop and Terminate first check whether the cluster still hosts any live application deployments — both deployments running directly on the cluster and any belonging to an environment this cluster is still attached to. Based on what it finds:

  • Terminating with live deployments is blocked. Because termination is permanent and would destroy those deployments, you must either remove them first (detach from the environment and redeploy onto another cluster) or explicitly choose “Terminate anyway” to force it.
  • Stopping with live deployments shows a warning listing what will be interrupted. Since stopping is reversible and the deployments resume on Start, you can confirm and continue.
  • With no live deployments, both actions proceed without a prompt.

💡 Why an attached cluster is safe to stop or terminate

The moment a cluster is stopped or terminated it stops receiving new deployments — environment deployments only target clusters that are up and running. The protection gate exists purely to protect deployments that are already live on the cluster, which is why it only prompts when at least one exists.

⚠️ Terminate destroys data

Terminating removes node groups, load balancers, persistent volumes and everything deployed on the cluster. If you only want to save cost, Stop the cluster instead — it keeps your configuration and data intact.

Cost Optimization

  • Use spot instances for non-production workloads
  • Right-size node instance types
  • Use cluster autoscaler to scale down when idle
  • Stop clusters when not in use using action rules