Documentation
DocumentationDiscussions
Documentation

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.