Skip to content

Latest commit

 

History

History
91 lines (68 loc) · 4.16 KB

File metadata and controls

91 lines (68 loc) · 4.16 KB

Kubecost On-Premises Deployment Guide (Self-hosted)

Kubecost Enterprise Architecture

This guide provides step-by-step instructions for deploying Kubecost in an on-premises environment. Choose the deployment option that best fits your infrastructure requirements.

Prerequisites

  1. Prepare Air-Gapped Environment

    • Set up private container registry
    • Download and push Kubecost images to internal container registry. Get a list of all images and image paths by running the following command:
    helm template kubecost --repo https://kubecost.github.io/kubecost/ kubecost --skip-tests | yq '..|.image? | select(.)' | sort -u
    • Configure Helm repository mirror
  2. Configure Storage

    • Set up internal object storage
    • Generate Credentials (access key & secret). Policy example
    • Apply storage configuration

Multi-Cluster Federation with Enterprise Custom Pricing (Air-Gapped/Private Cloud/On-prem Environment)

  1. Set Up Shared Storage

    • Configure federated-store.yaml pointing to the s3 bucket configured in step 2 of prerequisites.
    • Create secret for object storage in Kubecost namespace.
    kubectl create secret generic federated-store --from-file=federated-store.yaml -n kubecost
  2. Primary Cluster Installation

    helm upgrade --install kubecost \
      --repo http://internal-helm-repo/charts/ kubecost \
      --namespace kubecost \
      -f values-ecp-primary.yaml
    • Verify ETL pipeline is working by checking that a /federated directory was created in the object-store. If no /federated directory exists, double check configuration, finops-agent pod logs or test that the user can curl the bucket endpoint from inside the finops-agent container.
  3. Secondary Clusters Installation

    • Configure federated-store.yaml pointing to the s3 bucket configured in step 2 of prerequisites.
    • Create secret for object storage in Kubecost namespace.
    kubectl create secret generic federated-store --from-file=federated-store.yaml -n kubecost
    helm upgrade --install kubecost \
      --repo http://internal-helm-repo/charts/ kubecost \
      --namespace kubecost \
      -f values-ecp-agent.yaml
    • Verify ETL pipeline is working by checking that a /federated directory was created with the cluster-name sub directory in the object-store. If no /federated directory exists, double check configuration, finops-agent pod logs or test that the user can curl the bucket endpoint from inside the finops-agent container.

Configure the pricing spec

Example csv

Optional Configuration

Kubecost Actions

Continuous Container Requst Right-sizing & Resource Quota Right-sizing

⚠️Important Note: In order to use this feature, users must obtain a v3 license key. Reach out to your Account Representative(s)

helm upgrade --install kubecost \
     --repo https://kubecost.github.io/kubecost/ kubecost \
     --namespace kubecost \
     -f https://raw.githubusercontent.com/kubecost/kubecost-success/refs/heads/main/actions-primary.yaml

SSO/SAML Enabled

Troubleshooting

Common issues and their solutions will be documented here.

References