You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have tried to launch the sample (voting app) on kubernetes (aks), and:
dashboard doesn't work even if documentation says it's built in.
fixable with:
adding nuget reference to OrelansDashboard
adding orleansBuilder.UseDashboard(options => { }); to program.cs
dashboard was documented to be able to include linux specific and windows specific counters. I was not able to enable that.
provision.ps1 is not able to set up container. set up container has admin account disabled but script expects to be able to use it.
fixable with:
enabled it using azure web interface. not sure how to script that (you might prefer to script that).
application doesn't compile using docker build
fixable with:
changing aspnet and sdk versions in dockerfile from 6.0 to 7.0
compiled and published application doesn't start on kubernetes (aks)
fixable with:
code to support kubernetes was commented out in program.cs; restorting helps to at least start the application
requires adding nuget packages about orleans persistence
compiled and published application works only with 1 replica
trying to start it with multiple replicas causes error with connecting to signalr (sometimes it works, but usually it doesn't).
it looks like application is not set up to use a backplane for signalr (redis for example) so it doesn't work if signalr connection is directed to another pod than original request.
tried to fix that by adding a line (to kubernetes initialisation code):
builder.Services.AddSignalR().AddStackExchangeRedis(redisAddress);
but unfortunatelly it doesn't fix the problem.
it can be worked around by enabling session affinity by clientip in aks load balancer, but it's only a work around as real life applications can be used from traveling cell phones and their ip addresses can change when traveling. signalr backplane should be able to fix that, but I have failed to find out how.
data protection storage is not enabled, so session keys are stored only locally. it can break client sessions if multiple pods are used.
fixable with:
adding to program.cs (kubernetes initialisation):
builder.Services.AddDataProtection()
.PersistKeysToStackExchangeRedis(ConnectionMultiplexer.Connect(redisAddress))
.SetApplicationName("votingapp");
requires nuget packege to support redis persistence to data protection
So in short it looks like demo application supposed to show how to use orleans on kubernetes is not ready to be launched on aks. And what is worse from my perspective is that I have failed to configure signalr backplane that would work without session affinity.
The text was updated successfully, but these errors were encountered:
Hello,
I have tried to launch the sample (voting app) on kubernetes (aks), and:
fixable with:
dashboard was documented to be able to include linux specific and windows specific counters. I was not able to enable that.
provision.ps1 is not able to set up container. set up container has admin account disabled but script expects to be able to use it.
fixable with:
fixable with:
fixable with:
trying to start it with multiple replicas causes error with connecting to signalr (sometimes it works, but usually it doesn't).
it looks like application is not set up to use a backplane for signalr (redis for example) so it doesn't work if signalr connection is directed to another pod than original request.
tried to fix that by adding a line (to kubernetes initialisation code):
builder.Services.AddSignalR().AddStackExchangeRedis(redisAddress);
but unfortunatelly it doesn't fix the problem.
it can be worked around by enabling session affinity by clientip in aks load balancer, but it's only a work around as real life applications can be used from traveling cell phones and their ip addresses can change when traveling. signalr backplane should be able to fix that, but I have failed to find out how.
fixable with:
builder.Services.AddDataProtection()
.PersistKeysToStackExchangeRedis(ConnectionMultiplexer.Connect(redisAddress))
.SetApplicationName("votingapp");
So in short it looks like demo application supposed to show how to use orleans on kubernetes is not ready to be launched on aks. And what is worse from my perspective is that I have failed to configure signalr backplane that would work without session affinity.
The text was updated successfully, but these errors were encountered: