Skip to main content

Deploying kube-ingress-dash with Docker

This guide explains how to deploy kube-ingress-dash using Docker containers.

Prerequisites

  • Docker Engine 20.10+ installed
  • Access to the kube-ingress-dash Docker image
  • Kubernetes cluster with appropriate RBAC permissions (for cluster access)

Using Pre-built Images

The application is available as multi-architecture Docker images on GitHub Container Registry (GHCR):

Pull the Image

docker pull ghcr.io/wasilak/kube-ingress-dash:0.3.1

Run with Docker

docker run -p 3000:3000 ghcr.io/wasilak/kube-ingress-dash:0.3.1

Building from Source

1. Clone the Repository

git clone https://github.com/wasilak/kube-ingress-dash.git
cd kube-ingress-dash

2. Build the Docker Image

docker build -t kube-ingress-dash .

3. Run the Container

docker run -p 3000:3000 kube-ingress-dash

Configuration

Multi-architecture Support

Our Docker images support multiple architectures:

  • linux/amd64
  • linux/arm64

The appropriate image will be automatically selected based on your platform.

Running with Custom Configuration

# Example with environment variables
docker run -p 3000:3000 \
-e NODE_ENV=production \
-e PORT=3000 \
ghcr.io/wasilak/kube-ingress-dash:0.3.1

For a complete list of available environment variables, see the .env.example file in the repository.

Kubernetes Deployment with Docker

While Docker is typically used for local development, you can use Docker images in Kubernetes:

1. Create a Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-ingress-dash
spec:
replicas: 1
selector:
matchLabels:
app: kube-ingress-dash
template:
metadata:
labels:
app: kube-ingress-dash
spec:
serviceAccountName: kube-ingress-dash-viewer # Ensure proper RBAC
containers:
- name: kube-ingress-dash
image: ghcr.io/wasilak/kube-ingress-dash:0.3.1
ports:
- containerPort: 3000
env:
- name: PORT
value: "3000"
- name: NODE_ENV
value: "production"
# Health check probes
livenessProbe:
httpGet:
path: /api/health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /api/health
port: 3000
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 5
failureThreshold: 3
# Resource limits and requests
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi

2. Create a Service

apiVersion: v1
kind: Service
metadata:
name: kube-ingress-dash
spec:
selector:
app: kube-ingress-dash
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: ClusterIP

Resource Recommendations

For production deployments, we recommend the following resource allocation:

ResourceMinimumRecommendedNotes
CPU100m250mScales with number of ingresses
Memory128Mi256MiScales with number of ingresses
Replicas12+For high availability

Adjust based on your cluster size and ingress count. Monitor resource usage and scale accordingly.