Website • Slack • Forum • Twitter
Voyager provides controller for Ingress and Certificates for Kubernetes developed by AppsCode.
In here we call it ExtendedIngress. An extended plugin of Kubernetes Ingress by AppsCode, to support both L7 and L4 loadbalancing via a single ingress. This is built on top of the HAProxy, to support high availability, sticky sessions, name and path-based virtual hosting. This also support configurable application ports with all the features available in Kubernetes Ingress. Here is a complex ingress example that shows how various features can be used. You can find the generated HAProxy Configuration here.
Feautures
- HTTP and TCP loadbalancing,
- TLS Termination,
- Multi-cloud supports,
- Name and Path based virtual hosting,
- Cross namespace routing support,
- URL and Request Header Re-writing,
- Wildcard Name based virtual hosting,
- Persistent sessions, Loadbalancer stats.
Feauture | Kube Ingress | AppsCode Ingress |
---|---|---|
HTTP Loadbalancing | ✅ | ✅ |
TCP Loadbalancing | ❌ | ✅ |
TLS Termination | ✅ | ✅ |
Name and Path based virtual hosting | ❌ | ✅ |
Cross Namespace service support | ❌ | ✅ |
URL and Header rewriting | ❌ | ✅ |
Wildcard name virtual hosting | ❌ | ✅ |
Loadbalancer statistics | ❌ | ✅ |
Kubernetes Controller to manage TLS Certificate.
Feautures
- Manage Kubernetes TLS secrets backed by Custom Certificate Provider, uses Let's Encrypt by default,
- Manage issued certificates based on Kubernetes ThirdParty Resources,
- Domain validation using ACME dns-01 challenges,
- Support for multiple DNS providers,
- Auto Renew Certificates,
- Use issued Certificates with Ingress to Secure Communications.
Kubernetes 1.3+
To deploy voyager in Kubernetes follow this guide. In short this contains those two steps
- Create
ingress.appscode.com
andcertificate.appscode.com
Third Party Resource - Deploy voyager to kubernetes.
voyager can be configured to handle default kubernetes ingress or only ingress.appscode.com. voyager can also be run along side with other controllers.
--ingress-class
// this flag can be set to 'voyager' to handle only ingress
// with annotation kubernetes.io/ingress.class=voyager.
// If unset, voyager will also handle ingress without ingress-class annotation.
Want to learn whats happening under the hood, read the developer guide.
If you're interested in being a contributor, read the contribution guide.
Read Build Instructions to build voyager.
- docker-library/haproxy https://github.com/docker-library/haproxy
- kubernetes/contrib https://github.com/kubernetes/contrib/tree/master/service-loadbalancer
- appscode/lego https://github.com/appscode/lego
- kelseyhightower/kube-cert-manager https://github.com/kelseyhightower/kube-cert-manager
- PalmStoneGames/kube-cert-manager https://github.com/PalmStoneGames/kube-cert-manager
If you have any questions, you can reach out to us.