# README
- Overview
- Features
- Prerequisites
- Install using Helm
- Configuration
- Usage
- Helm Chart Customization
- Contributors
- Note on Windows Support
- Contributing
- License
Overview
kdns is a lightweight mDNS (Multicast DNS) server for Kubernetes that exposes services on the local network using DNS names with .local
extensions. This service helps manage local DNS resolution in Kubernetes environments, facilitating service discovery for containers without the need for a full DNS solution.
Features
- mDNS Server: Exposes services over mDNS using
.local
DNS names. - Kubernetes Integration: Works natively within Kubernetes environments.
- Service Discovery: Automatically discovers and advertises services to the local network.
- Security: Runs with minimal privileges for enhanced security.
- Helm Chart: Deployable via Helm for easy integration into your Kubernetes clusters.
Prerequisites
- Kubernetes Cluster
- Helm (v3.8.0 or higher recommended)
- A running Kubernetes environment (local only)
Install using Helm
To install kdns
in your Kubernetes cluster, follow these steps:
- Add the Helm repository:
helm repo add lab42 https://ghcr.io/lab42/charts
helm repo update
- Install the
kdns
chart:
helm install kdns lab42/kdns
This will install the kdns
service with default settings in your Kubernetes cluster.
Configuration
You can customize the installation by overriding values in your values.yaml
. For example:
serviceAccount:
create: true
name: ingress-kdns
hostNetwork: true # Exposes the pod on the host network
To configure the kdns
chart with your custom values, create a values.yaml
file and pass it to Helm:
helm install kdns lab42/kdns -f values.yaml
Usage
Once kdns
is installed, it will expose services on the local network using mDNS. For example, if you have a service named my-service
, it will be available under my-service.local
.
Example
- Deploy a service in your Kubernetes cluster (e.g., an HTTP server running in a pod).
- The
kdns
server will automatically expose this service on the local network. - Access it using the
.local
domain name, likehttp://my-service.local
.
Helm Chart Customization
For a full list of configurable parameters, check the Helm Chart values.
Contributors
Note on Windows Support
Please be aware that I do not use Windows as part of my workflow. As a result, I cannot provide support for Windows-related issues or configurations. However, I do generate Windows executables as a courtesy for those who need them.
Thank you for your understanding!
Contributing
I welcome contributions to this project! If you have ideas for new features or improvements, please submit a feature request or contribute directly to the project.
License
This project is licensed under the MIT License.