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/amd64linux/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:
| Resource | Minimum | Recommended | Notes |
|---|---|---|---|
| CPU | 100m | 250m | Scales with number of ingresses |
| Memory | 128Mi | 256Mi | Scales with number of ingresses |
| Replicas | 1 | 2+ | For high availability |
Adjust based on your cluster size and ingress count. Monitor resource usage and scale accordingly.