Using Helm
Details on using the Seq Helm chart
Kubernetes is a container orchestration platform that standardizes many of the concerns around deploying, integrating, exposing, and maintaining applications. If you're deploying apps and supporting infrastructure to Kubernetes then Seq can be deployed there too. The best way to get started is using the seq
Helm chart.
Kubernetes is not easy
Kubernetes is a complex and powerful tool. Using it successfully requires an investment in learning the technology. Before choosing Kubernetes as your Seq deployment technology consider if the complexity is justified in your scenario and if you are prepared to spend time to learn it thoroughly.
The Helm chart is a simplified deployment strategy
The Helm chart makes assumptions about your infrastructure that may not be correct for your needs. In these cases, your best bet is to configure your deployment manually. You can use the Helm chart's templates as a starting point and adjust from there.
Installing Seq
Use Helm to install the Seq chart. First, add the datalust
Helm repository:
helm repo add datalust https://helm.datalust.co
helm repo update
Then you can install the seq
chart:
helm install my-seq datalust/seq
This will create a Seq instance in your cluster as a cluster-internal service with persistent storage. It can be discovered and logged to by other other apps within the cluster, but won't be externally visible.
Configuring Seq
The source for the seq
chart is on GitHub. It includes a values.yaml
that can serve as a starting point for your own configuration.
Before going live
Make sure you check the storage and memory docs for more recommendations for a healthy deployment.
Upgrading Seq
Use:
helm upgrade my-seq
to upgrade a Seq instance in your cluster. Only a single instance of Seq can use its storage at a time, so deployments will use the Recreate strategy to ensure the previous instance is removed before a new one is started.
Ingesting from within the cluster
A Seq instance can be discovered within the cluster using a generated DNS record. So if the release is called seq
in the logging
namespace, then it can be reached at seq.logging.svc.cluster.local
.
See the section on collecting application logs for more details.
Ingesting from outside the cluster
Seq can be made accessible to external consumers through an ingress. Ingress requires an ingress controller to be running in your cluster.
The Seq Helm chart allows ingress for the full Seq UI and/or the limited ingestion-only API.
The following example configures ingress for the UI, using an existing nginx controller as an ingest controller:
helm install -f config.yaml my-seq datalust/seq
# config.yaml
ingress:
annotations:
kubernetes.io/ingress.class: nginx
ui:
ingress:
enabled: true
path: /
hosts:
- seq.mydomain.com
ingestion:
ingress:
enabled: true
path: /
hosts:
- ingestion.seq.mydomain.com
Ingress for the UI and ingestion API can only be separated by subdomain, rather than by the port or path.
Adding a DNS entry pointing seq.mydomain.com
and ingestion.seq.mydomain.com
to your ingress controller's public IP will forward requests to the Seq service.
For other considerations, see Ingress.
Updated 11 months ago