You should create this trigger only once, not on each node's startup.
I see that you trigger contains instance's id as group which is very suspicious. It seems that you are having trigger for each node when you should have just single trigger created if it does not exist yet.
Easier to read trigger definition would thus be:
ISchedulerFactory sf = new StdSchedulerFactory(properties);
IScheduler sched = sf.GetScheduler();
var jobDetail = JobBuilder.Create<NoOpJob>().Build();
var key = new TriggerKey("trigger-name", "trigger-group");
if (sched.GetTrigger(key) == null)
{
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(key)
.StartAt(DateBuilder.EvenHourDate(DateTimeOffset.UtcNow))
.WithSimpleSchedule(x => x
.RepeatForever()
.WithInterval(TimeSpan.FromMinutes(5)))
.Build();
sched.ScheduleJob(jobDetail, trigger);
}
I threw in the even hour date to get more precise timings instead of 'from now every 5 minutes'. You could easily get this with cron trigger too.