Install kubernetes Rancher2

Hello,

I’m trying to install Sentry on Rnacher2 / k8s. I “translate” the docker-compose from OnPromise github for each components.

First: I can’t establish minimum components requirement to setup a Sentry. So this is my first question: which components are required? Not best practice but only required.

Here is the liste of services in the docker-compose.yml and my interpretation:

  • smtp: required but to send emails you can configure an external SMTP.
  • memcached: not required
  • redis: required
  • postgres: required sentry need a database
  • zookeeper: ???
  • kafka: ???
  • clickhouse: ???
  • snuba-api: ???
  • snuba-consumer: ???
  • snuba-outcomes-consumer: ???
  • snuba-sessions-consumer: ???
  • snuba-transactions-consumer: ???
  • snuba-replacer: ???
  • snuba-subscription-consumer-events: ???
  • snuba-cleanup: ???
  • symbolicator: ???
  • symbolicator-cleanup: ???
  • web: required
  • cron: required I get it on previous so I guess it is required
  • worker: required I get it on previous so I guess it is required
  • ingest-consumer: ???
  • post-process-forwarder: ???
  • subscription-consumer-events: ???
  • subscription-consumer-transactions: ???
  • sentry-cleanup: I guess not required but can be really good to clean sentry
  • nginx: required I use k8s / rancher2 so I already have a ingress,
  • relay: ???

Many thanks for your help.

Greetings, @Louis14! Sounds like an interesting experiment, the results of which could be good to have documented. I know we have an architecture diagram … have you consulted that yet?

Of course, the simple answer to your question is that everything is required for something, otherwise it wouldn’t be there (one hopes!). :smiley: So what’s your definition of “required”? Required for what?

Looking down the list you posted, my hunch is that most things are required for the basic workflow of POSTing an event from an SDK, and having Sentry process the event so that it shows up in the issue stream. One corner you might be able to cut is symbolicator if you aren’t processing events from mobile SDKs.

What parts of the product experience are you willing to live without? Or conversely: what parts are must-haves for you?

Hi @chadwhitacre, thanks for the diagram it will help.

I will take the example of Memcached. Of course I know that it is really good to have memcached for performance. But it is not required. With my experience now I think it is the only one component that is not required.

Sentry 9 is simple to install. Sentry web, cron, worker that’s it. The last version is quite complicated. But I guess I will success and I will try to share the experience with the community.

Okay, so your definition of required is “all product features are functional, but not necessarily scalable,” something like that? Then yeah I think you’re going to find that pretty much all components are required.

That said, for single-node setups, current Sentry should be simpler to install than Sentry 9, with the install script in the onpremise repo. It’s true that installing modern Sentry is more complicated for multi-node setups, but of course that’s to be expected given the additional features added since Sentry 9 (Discover, Performance), and the complexity inherent in scaling any app.

Can I ask, what’s your reason for self-hosting rather than using SaaS? Moving to SaaS is generally our recommendation when the burden of self-hosting becomes too much.

It is required or else you’ll have a very bad time and also need to configure some alternative cache backend in your settings.

The only two things that can be optional are:

  1. SMTP as you pointed out, as long as you configure an external SMTP server
  2. Symbolicator if you are not ingesting any native events or minidumps as @chadwhitacre mentioned above (not only Mobile tho, any kind of native)

Hey, nice, I was close! :smiley:

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.