Aktivity „carl.hallqvist“

Thanks gterdem,

Unfortuntely, I got same error. I think that I need to get each app / service / gateway working.

auth.staging.microservice.io service seems to be ok, the login / logout is working fine.

Log from microservice-public-web

[20:23:22 INF] Sending HTTP request GET https://gateway-public.staging.microservice.io/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
[20:23:22 INF] Received HTTP response headers after 13.0113ms - 502

So, the response from the gateway is 502, and when looking into the log in the gateway I got:

Log from geoticket-gateway-web-public:

[20:23:22 INF] Request starting HTTP/1.1 GET http://gateway-public.staging.microservice.io/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - -
[20:23:22 INF] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for /api/abp/{everything}
[20:23:22 INF] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: No authentication needed for /api/abp/application-configuration
[20:23:22 INF] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: /api/abp/{everything} route does not require user to be authorized
[20:23:22 WRN] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: Error Code: ConnectionToDownstreamServiceError Message: Error connecting to downstream service, exception: System.Net.Http.HttpRequestException: Connection refused (localhost:44367)
 ---> System.Net.Sockets.SocketException (111): Connection refused
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|281_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter`1.WaitForConnectionAsync(Boolean async, CancellationToken requestCancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at Ocelot.Requester.HttpClientHttpRequester.GetResponse(HttpContext httpContext) errors found in ResponderMiddleware. Setting error response for request path:/api/abp/application-configuration, request method: GET
[20:23:22 INF] Request finished HTTP/1.1 GET http://gateway-public.staging.microservice.io/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - - - 502 0 - 6.7145ms

This is my value file:

# public-web sub-chart override
public-web:
  config:
    selfUrl: https://public.staging.microservice.io
    gatewayUrl: https://gateway-public.staging.microservice.io
    authServer:
      authority: https://auth.staging.microservice.io
      requireHttpsMetadata: "false"
      isOnProd: "true"
      metaAddress: http://microservice-authserver
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: public.staging.microservice.io
    tlsSecret: public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-app-public-web"
    tag: latest
	
###

# gateway-web-public sub-chart override
gateway-web-public:
  config:
    selfUrl: https://gateway-public.staging.microservice.io
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: gateway-public.staging.microservice.io
    tlsSecret: gateway-public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-gateway-web-public"
    tag: latest
  reRoutes:
    accountService:
      url: http://microservice-authserver
    identityService:
      url: http://microservice-identity
    administrationService:
      url: http://microservice-administration

Kind regards, Carl

Hi,

I have almost managed to deploy everything. However, got some configuration failure from public web app:

[19:46:55 INF] TRIAL-INFO - You are using the trial version of ABP and your expiry date is 2023-10-26 [19:46:55 INF] Now listening on: http://[::]:80 [19:46:55 INF] Application started. Press Ctrl+C to shut down. [19:46:55 INF] Hosting environment: Production [19:46:55 INF] Content root path: /app [19:48:58 INF] Request starting HTTP/1.1 GET http://public.staging.microservice.io/ - - [19:48:58 WRN] Could not find IdentityClientConfiguration for AbpMvcClient. Either define a configuration for AbpMvcClient or set a default configuration. [19:48:58 INF] Start processing HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:48:58 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:00 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:04 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:12 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:28 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:28 ERR] Connection id "0HMU9033L8A7L", Request id "0HMU9033L8A7L:00000001": An unhandled exception was thrown by the application. Volo.Abp.Http.Client.AbpRemoteCallException: An error occurred during the ABP remote HTTP request. (Connection refused (microservice-gateway-web-public:443)) See the inner exception for details. ---> System.Net.Http.HttpRequestException: Connection refused (microservice-gateway-web-public:443) ---> System.Net.Sockets.SocketException (111): Connection refused

This is my value file:

# auth-server sub-chart override
authserver:
  config:
    selfUrl: https://auth.staging.microservice.io   
    corsOrigins: https://gateway.staging.microservice.io,https://gateway-public.staging.microservice.io,https://identity.staging.microservice.io,https://administration.staging.microservice.io,https://basket.staging.microservice.io,https://catalog.staging.microservice.io,https://order.staging.microservice.io,https://cmskit.staging.microservice.io,https://payment.staging.microservice.io,https://admin.staging.microservice.io,https://www.staging.microservice.io
    allowedRedirectUrls: https://admin.staging.microservice.io
    disablePii: "false"
    identityService:
      connString: "Server=microservice-sqldb,1433;Database=Microservice_Identity;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
    administrationService:
      connString: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
    saasService:
      connString: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchUrl: http://microservice-elasticsearch
  ingress:
    host: auth.staging.microservice.io
    tlsSecret: auth-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-app-authserver"
    tag: latest

# public-web sub-chart override
public-web:
  config:
    selfUrl: https://www.staging.microservice.io
    gatewayUrl: https://microservice-gateway-web-public
    authServer:
      authority: https://auth.staging.microservice.io
      requireHttpsMetadata: "false"
      isOnProd: "true"
      metaAddress: http://microservice-authserver
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: public.staging.microservice.io
    tlsSecret: public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-app-public-web"
    tag: latest

blazor:
  config:
    selfUrl: https://blazor.staging.microservice.io
    gatewayUrl: https://microservice-gateway-web
    authServer:
      authority: https://microservice-st-authserver
      requireHttpsMetadata: "false"
      responseType: "code"
  ingress:
    host: blazor.staging.microservice.io
    tlsSecret: blazor-staging-microservice-io-tls
  image:
    repository: registry.digitalocean.com/microservice/microservice-app-blazor
    tag: latest
    pullPolicy: IfNotPresent

# identity-service sub-chart override
identity:
  config:
    selfUrl: https://identity.staging.microservice.io
    corsOrigins: https://gateway.staging.microservice.io,https://gateway-public.staging.microservice.io
    connectionStrings:
      identityService: "Server=microservice-sqldb,1433;Database=Microservice_Identity;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
      administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
      saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch  
  identityServerClients: # Seeded Clients
    webRootUrl: https://admin.staging.microservice.io/  
    publicWebRootUrl: https://www.staging.microservice.io/
    webGatewayRootUrl: https://gateway.staging.microservice.io/
    publicWebGatewayRootUrl: https://gateway-public.staging.microservice.io/
    identityServiceRootUrl: https://identity.staging.microservice.io/
    administrationServiceRootUrl: https://administration.staging.microservice.io/
    accountServiceRootUrl: https://auth.staging.microservice.io
  ingress:
    host: identity.staging.microservice.io
    tlsSecret: identity-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-service-identity"
    tag: latest

# administration sub-chart override
administration:
  config:
    selfUrl: https://administration.staging.microservice.io
    corsOrigins: https://microservice-gateway-web,https://microservice-st-gateway-web-public
    connectionStrings:
      administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
      saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"    
    authServer:
      authority: http://microservice-st-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    remoteServices:
      abpIdentityBaseUrl: https://microservice-st-identity
      useCurrentToken: "false"   
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  synchedCommunication: # Used for server-to-server (client-credentials) communication with identityService for user permissions
    authority: http://microservice-authserver
    requireHttps: "false"
    validateIssuerName: "false"
    validateEndpoints: "false"
  ingress:
    host: administration.staging.microservice.io
    tlsSecret: administration-staging-microservice-io-tls
  image:
    repository: registry.digitalocean.com/microservice/microservice-service-administration
    tag: latest

# gateway-web sub-chart override
gateway-web:
  config:
    selfUrl: https://gateway.staging.microservice.io
    corsOrigins: https://admin.staging.microservice.io
    globalConfigurationBaseUrl: http://microservice-gateway-public
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: gateway.staging.microservice.io
    tlsSecret: gateway-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-gateway-web"
    tag: latest
  reRoutes:
    accountService:
      url: http://microservice-authserver
    identityService:
      url: http://microservice-identity
    administrationService:
      url: http://microservice-administration

# gateway-web-public sub-chart override
gateway-web-public:
  config:
    selfUrl: https://gateway-public.staging.microservice.io
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: gateway-public.staging.microservice.io
    tlsSecret: gateway-public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-gateway-web-public"
    tag: latest
  reRoutes:
    accountService:
      url: http://microservice-authserver
    identityService:
      url: http://microservice-identity
    administrationService:
      url: http://microservice-administration

# dbmigrator
dbmigrator:
  config:
    connectionStrings:
      identityService: "Server=microservice-sqldb,1433;Database=Microservice_Identity;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
      administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
      saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
      productService: "Server=microservice-sqldb,1433;Database=Microservice_ProductService;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
    dotnetEnv: Production
    elasticsearchUrl: http://microservice-elasticsearch
    redisHost: microservice-redis
  openIdDict:
    applications:
      authServerRootUrl: https://microservice-authserver/
      angularRootUrl: https://microservice-angular/
      webRootUrl: https://microservice-web/
      blazorRootUrl: https://microservice-blazor/
      blazorServerRootUrl: https://microservice-blazor-server/
      publicWebRootUrl: https://microservice-public-web/
      webGatewayRootUrl: https://microservice-gateway-web/
      publicWebGatewayRootUrl: https://microservice-gateway-web-public/ 
    resources:  
      accountServiceRootUrl: https://microservice-authserver/
      administrationServiceRootUrl: https://microservice-administration/
      identityServiceRootUrl: https://microservice-identity/
      saasServiceRootUrl: https://microservice-saas/
      productServiceRootUrl: https://microservice-product/
  image:
    repository: registry.digitalocean.com/microservice/microservice-db-migrator
    tag: latest
    pullPolicy: IfNotPresent  

kibana:
  config:
    elasticsearchUrl: http://microservice-elasticsearch:9200
  ingress:
    host: kibana.staging.microservice.io
    tlsSecret: kibana-staging-microservice-io-tls

# Default values for microservice.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

image:
  repository: nginx
  pullPolicy: IfNotPresent
  # Overrides the image tag whose default is the chart appVersion.
  tag: ""

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

podAnnotations: {}

podSecurityContext: {}
  # fsGroup: 2000

securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

service:
  type: ClusterIP
  port: 80

# ingress:
#   enabled: false
#   className: ""
#   annotations: {}
#     # kubernetes.io/ingress.class: nginx
#     # kubernetes.io/tls-acme: "true"
#   hosts:
#     - host: chart-example.local
#       paths:
#         - path: /
#           pathType: ImplementationSpecific
#   tls: []
#   #  - secretName: chart-example-tls
#   #    hosts:
#   #      - chart-example.local

resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80
  # targetMemoryUtilizationPercentage: 80

tolerations: []

affinity: {}

Thanks gterdem,

I don't think that is related to Azure? I am no expert, but when looking at the k8s directory, it seems that most of it is in place? I guess its the installation of cert-manager and nginx ingress (for instance) and the issuer manifests. Also adding ingress part for all services.

I will try to make it work by my self, but the abp really need some deployment guides. We was failing to deploy abp framework too, and now we are trying the commercial one.

  • ABP Framework version: v7.3.3
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: N/A
  • Steps to reproduce the issue: N/A

Can you provide any short guide / tutorial of how to deploy the Microservice template in a Kubernetes cluster with real domain names?

Prerequisites:

  • ABP commecial license
  • A Kubernetes cluster with a minimum specification to host the microservice template pods.
  • A domain name with access to add A records for managing sub-domains (e.g., abp-microservice-tutorial.io, auth.abp-microservice-tutorial.io, ..)

Thanks, Carl

Zobrazených 21 až 24 z 24 záznamov
Made with ❤️ on ABP v8.2.0-preview Updated on marca 25, 2024, 15:11