Emissary Ingress is an open-source Kubernetes-native API Gateway + Layer 7 load balancer + Kubernetes Ingress built on Envoy Proxy.
Best Practice
Any supported EKS Anywhere curated package should be modified through package yaml files (with kind: Package) and applied through the command kubectl apply -f packageFileName. Modifying objects outside of package yaml files may lead to unpredictable behaviors.
Starting at eksctl anywhere version v0.12.0, packages on workload clusters are remotely managed by the management cluster.
While following this guide to install packages on a workload cluster, please make sure the kubeconfig is pointing to the management cluster that was used to create the workload cluster. The only exception is the kubectl create namespace command below, which should be run with kubeconfig pointing to the workload cluster.
The emissary-apiext service has a known issue where its TLS certificate expires after one year and does not auto-renew. To resolve this, manually renew the certificate by running kubectl delete --all secrets --namespace=emissary-system followed by kubectl rollout restart deploy/emissary-apiext -n emissary-system prior to certificate expiry.
Configuring Emissary Ingress in EKS Anywhere package spec
Parameter
Description
Default
General
hostNetwork
Whether Emissary will use the host network, useful for on-premise setup . Example:
hostNetwork: false
false
createDefaultListeners
Whether Emissary should be created with default listeners, HTTP on port 8080 and HTTPS on port 8443. Example:
createDefaultListeners: false
false
replicaCount
Replica count for Emissary to deploy. Example:
replicaCount: 2
2
daemonSet
Whether to create Emissary as a Daemonset instead of a deployment Example:
daemonSet: false
false
3 - v3.3.0
Emissary version 0.3.3 has decoupled the CRD portion of the package, and now supports installing multiple instances of the emissary package in the same cluster.
Configuring Emissary Ingress in EKS Anywhere package spec
Parameter
Description
Default
General
hostNetwork
Whether Emissary will use the host network, useful for on-premise setup . Example:
hostNetwork: false
false
createDefaultListeners
Whether Emissary should be created with default listeners, HTTP on port 8080 and HTTPS on port 8443. Example:
createDefaultListeners: false
false
replicaCount
Replica count for Emissary to deploy. Example:
replicaCount: 2
2
daemonSet
Whether to create Emissary as a Daemonset instead of a deployment Example:
daemonSet: false
false
4 - v3.9.1
Emissary version 3.9.1 has decoupled the CRD portion of the package, and now supports installing multiple instances of the emissary package in the same cluster.
Configuring Emissary Ingress in EKS Anywhere package spec
Parameter
Description
Default
General
hostNetwork
Whether Emissary will use the host network, useful for on-premise setup . Example:
hostNetwork: false
false
createDefaultListeners
Whether Emissary should be created with default listeners, HTTP on port 8080 and HTTPS on port 8443. Example:
createDefaultListeners: false
false
replicaCount
Replica count for Emissary to deploy. Example:
replicaCount: 2
2
daemonSet
Whether to create Emissary as a Daemonset instead of a deployment Example: