Модуль Kubernetes с приложением spring не запускается (все конечные точки с ошибкой 404)

У моей команды есть процесс развертывания, который включает использование Spring bootBuildImage для создания образа приложения, а затем мы развертываем его в нашем кластере Kubernetes. На прошлой неделе развертывание работало правильно, но вдруг перестало работать.

Когда мы пытаемся развернуть новую версию, образ создается правильно, но модуль не получает Ready, потому что конечные точки привода возвращают ошибку 404.

curl localhost:8080/actuator/health/liveness
<!doctype html>
<html lang = "en">
    <head>
        <title>HTTP Status 404 – Not Found</title>
        <style type = "text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style>
    </head>
    <body>
        <h1>HTTP Status 404 – Not Found</h1>
    </body>
</html>

Я уже добавил свойства здоровья (хотя раньше они нам не понадобились)

management.endpoint.health.probes.enabled=true
management.health.livenessState.enabled=true
management.health.readinessState.enabled=true

Вот что говорит Kubernetes

Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Tue, 07 Feb 2023 01:23:27 -0600
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:8080/actuator/health/liveness delay=60s timeout=1s period=30s #success=1 #failure=3
    Readiness:      http-get http://:8080/actuator/health/readiness delay=60s timeout=1s period=10s #success=1 #failure=3
...
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  2m30s              default-scheduler  Successfully assigned podname to ip-10-8-x-x.ap-northeast-1.compute.internal
  Normal   Pulled     2m29s              kubelet            Container image "registry.gitlab.com/integration-image" already present on machine
  Normal   Created    2m29s              kubelet            Created container ui-backend
  Normal   Started    2m29s              kubelet            Started container ui-backend
  Warning  Unhealthy  30s (x2 over 60s)  kubelet            Liveness probe failed: HTTP probe failed with statuscode: 404
  Warning  Unhealthy  10s (x8 over 80s)  kubelet            Readiness probe failed: HTTP probe failed with statuscode: 404

Я также пробовал:

  • продление времени проверки
  • изменение порта привода
  • отключение весенних задач

Во всех этих случаях spring запускается, но kubernetes перезапускает его после неудачной проверки готовности.

Setting Active Processor Count to 2
Adding $JAVA_OPTS to $JAVA_TOOL_OPTIONS
Calculating JVM memory based on 5201M available memory
For more information on this calculation, see https://paketo.io/docs/reference/java-reference/#memory-calculator
Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -Xmx4528339K -XX:MaxMetaspaceSize=285484K -XX:ReservedCodeCacheSize=240M -Xss1M (Total Memory: 5201M, Thread Count: 250, Loaded Class Count: 47989, Headroom: 0%)
Enabling Java Native Memory Tracking
Adding 124 container CA certificates to JVM truststore
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Picked up JAVA_TOOL_OPTIONS: -Djava.security.properties=/layers/paketo-buildpacks_bellsoft-liberica/java-security-properties/java-security.properties -XX:+ExitOnOutOfMemoryError -XX:ActiveProcessorCount=2 -Dspring.profiles.active=dev -Dspring.config.additional-location=optional:file:/config/,optional:file:/secret/ -Dsentry.environment=dev -Dhoneycomb.config.file=/secret/application.properties -javaagent:/workspace/WEB-INF/lib/honeycomb-opentelemetry-javaagent-1.0.0.jar -XX:MaxDirectMemorySize=10M -Xmx4528339K -XX:MaxMetaspaceSize=285484K -XX:ReservedCodeCacheSize=240M -Xss1M -XX:+UnlockDiagnosticVMOptions -XX:NativeMemoryTracking=summary -XX:+PrintNMTStatistics
[otel.javaagent 2023-02-02 03:27:59:129 +0000] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: honeycomb-1.0.0-otel-1.12.0
[CONTAINER] org.apache.coyote.http11.Http11NioProtocol         INFO    Initializing ProtocolHandler ["http-nio-8080"]
[CONTAINER] org.apache.catalina.startup.Catalina               INFO    Server initialization in [968] milliseconds
[CONTAINER] org.apache.catalina.core.StandardService           INFO    Starting service [Catalina]
[CONTAINER] org.apache.catalina.core.StandardEngine            INFO    Starting Servlet engine: [Apache Tomcat/9.0.71]
[CONTAINER] org.apache.catalina.startup.HostConfig             INFO    Deploying web application directory [/layers/paketo-buildpacks_apache-tomcat/catalina-base/webapps/ROOT]
[CONTAINER] org.apache.jasper.servlet.TldScanner               INFO    At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[CONTAINER] lina.core.ContainerBase.[Catalina].[localhost].[/] INFO    2 Spring WebApplicationInitializers detected on classpath
{"timestamp":"2023-02-02T03:28:15.334Z","level":"INFO","thread":"main","logger":"app","message":"Starting UiApplication using Java 11.0.18 on ui-backend-7b6ddf8f58-m8vtq with PID 1 (/workspace/WEB-INF/classes started by cnb in /workspace)","context":"default","nanotime":27377774090677176}
{"timestamp":"2023-02-02T03:28:15.388Z","level":"DEBUG","thread":"main","logger":"app","message":"Running with Spring Boot v2.5.8, Spring v5.3.14","context":"default","nanotime":27377774144285955}
{"timestamp":"2023-02-02T03:28:15.388Z","level":"INFO","thread":"main","logger":"app","message":"The following profiles are active: dev","context":"default","nanotime":27377774145291720}
[CONTAINER] lina.core.ContainerBase.[Catalina].[localhost].[/] INFO    Initializing Spring embedded WebApplicationContext
{"timestamp":"2023-02-02T03:28:22.755Z","level":"WARN","thread":"main","logger":"org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration","message":"spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning","context":"default","nanotime":27377781511405545}
{"timestamp":"2023-02-02T03:28:38.660Z","level":"INFO","thread":"main","logger":"app.route.ui.report.ReportTemplateRegistry","message":"report template registry -> templates -> {receipt_ja=app.route.ui.report.ReceiptReportTemplate@6dc0e992, invoice_ja=app.route.ui.report.InvoiceReportTemplate@6e221246}","context":"default","nanotime":27377797416315839}
{"timestamp":"2023-02-02T03:28:38.675Z","level":"DEBUG","thread":"main","logger":"app.route.ui.service.ReportService","message":"report service -> initialize -> start","context":"default","nanotime":27377797431868400}
{"timestamp":"2023-02-02T03:28:38.721Z","level":"INFO","thread":"main","logger":"app.route.ui.service.ReportService","message":"report service -> initialize -> cache created succefully","context":"default","nanotime":27377797477131943}
{"timestamp":"2023-02-02T03:28:38.721Z","level":"DEBUG","thread":"main","logger":"app.route.ui.service.ReportService","message":"report service -> initialize -> end","context":"default","nanotime":27377797481925043}
[CONTAINER] freemarker.configuration                           SEVERE  DefaultObjectWrapper.incompatibleImprovements was set to the object returned by Configuration.getVersion(). That defeats the purpose of incompatibleImprovements, and makes upgrading FreeMarker a potentially breaking change. Also, this probably won't be allowed starting from 2.4.0. Instead, set incompatibleImprovements to the highest concrete version that's known to be compatible with your application.
{"timestamp":"2023-02-02T03:28:40.289Z","level":"INFO","thread":"main","logger":"app.route.ui.entity.storage.EntityStorageRegistry","message":"entity storage registry -> interceptors -> [app.route.ui.entity.interceptor.UserInterceptor@3a94d628]","context":"default","nanotime":27377799045261311}
{"timestamp":"2023-02-02T03:28:41.091Z","level":"INFO","thread":"main","logger":"org.springframework.security.web.DefaultSecurityFilterChain","message":"Will secure Ant [pattern='/actuator/health/**'] with []","context":"default","nanotime":27377799847478125}
{"timestamp":"2023-02-02T03:28:41.092Z","level":"INFO","thread":"main","logger":"org.springframework.security.web.DefaultSecurityFilterChain","message":"Will secure Ant [pattern='/h2-console/**'] with []","context":"default","nanotime":27377799848958832}
{"timestamp":"2023-02-02T03:28:41.182Z","level":"INFO","thread":"main","logger":"org.springframework.security.web.DefaultSecurityFilterChain","message":"Will secure Or [Ant [pattern='/admin/user/webhook'], Ant [pattern='/v1/backups/webhoook/**']] with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7843b634, org.springframework.security.web.context.SecurityContextPersistenceFilter@2f514909, org.springframework.security.web.header.HeaderWriterFilter@22c59a39, org.springframework.security.web.authentication.logout.LogoutFilter@395a9cdb, app.route.ui.security.internal.ApiKeyAuthFilter@3d042a50, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1404f97, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@50d8cc71, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@63b040d5, org.springframework.security.web.session.SessionManagementFilter@75c3b5ab, org.springframework.security.web.access.ExceptionTranslationFilter@763630ac, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@7753b2e8]","context":"default","nanotime":27377799938730993}
{"timestamp":"2023-02-02T03:28:41.194Z","level":"INFO","thread":"main","logger":"org.springframework.security.web.DefaultSecurityFilterChain","message":"Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1c2cee82, org.springframework.security.web.context.SecurityContextPersistenceFilter@3c3e87b8, org.springframework.security.web.header.HeaderWriterFilter@58e130bc, org.springframework.web.filter.CorsFilter@7c067793, org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter@43c49d4c, org.keycloak.adapters.springsecurity.filter.KeycloakAuthenticationProcessingFilter@233b20ed, org.springframework.security.web.authentication.logout.LogoutFilter@4eb259f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@465b750a, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@176ed9ad, org.keycloak.adapters.springsecurity.filter.KeycloakSecurityContextRequestFilter@1de33861, org.keycloak.adapters.springsecurity.filter.KeycloakAuthenticatedActionsFilter@41dfea3, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@25cb293e, org.springframework.security.web.session.SessionManagementFilter@76a5b602, org.springframework.security.web.access.ExceptionTranslationFilter@160d925f, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@3a5e6480]","context":"default","nanotime":27377799956811708}
{"timestamp":"2023-02-02T03:28:42.964Z","level":"INFO","thread":"main","logger":"app","message":"Started UiApplication in 29.288 seconds (JVM running for 44.237)","context":"default","nanotime":27377801720328782}
{"timestamp":"2023-02-02T03:28:43.156Z","level":"DEBUG","thread":"main","logger":"app.route.ui.interceptor.RequestLogFilter","message":"Filter 'requestLogFilter' configured for use","context":"default","nanotime":27377801912945502}
{"timestamp":"2023-02-02T03:28:43.160Z","level":"DEBUG","thread":"main","logger":"app.route.ui.security.UiAuthenticationFilter","message":"Filter 'uiAuthenticationFilter' configured for use","context":"default","nanotime":27377801916847463}
[CONTAINER] org.apache.catalina.startup.HostConfig             INFO    Deployment of web application directory [/layers/paketo-buildpacks_apache-tomcat/catalina-base/webapps/ROOT] has finished in [38,936] ms
[CONTAINER] org.apache.coyote.http11.Http11NioProtocol         INFO    Starting ProtocolHandler ["http-nio-8080"]
[CONTAINER] org.apache.catalina.startup.Catalina               INFO    Server startup in [39138] milliseconds
[CONTAINER] org.apache.coyote.http11.Http11NioProtocol         INFO    Pausing ProtocolHandler ["http-nio-8080"]
[CONTAINER] org.apache.catalina.core.StandardService           INFO    Stopping service [Catalina]
[CONTAINER] lina.core.ContainerBase.[Catalina].[localhost].[/] INFO    Closing Spring root WebApplicationContext

Я не уверен, проблема ли это в пружине или в Kubernetes. Спасибо.

Редактировать: Другие вещи, которые я пробовал:

  • осушение узлов
  • запуск изображений с помощью kubectl run, который запускает пружину, и я могу достичь конечных точек привода, но не могу ничего сделать.

Описание узлов.

  • Узел, где по крайней мере предыдущее развертывание все еще работает
Name:               goodnode.ap-northeast-1.compute.internal
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=m5.large
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=ap-northeast-1
                    failure-domain.beta.kubernetes.io/zone=ap-northeast-1a
                    k8s.io/cloud-provider-aws=86af69e954aa5c8fc905ce14364ec305
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=goodnode.ap-northeast-1.compute.internal
                    kubernetes.io/os=linux
                    node.kubernetes.io/instance-type=m5.large
                    topology.kubernetes.io/region=ap-northeast-1
                    topology.kubernetes.io/zone=ap-northeast-1a
Annotations:        node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Tue, 22 Mar 2022 00:32:53 -0600
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  goodnode.ap-northeast-1.compute.internal
  AcquireTime:     <unset>
  RenewTime:       Tue, 07 Feb 2023 13:13:59 -0600
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Tue, 07 Feb 2023 13:11:07 -0600   Tue, 22 Mar 2022 00:32:51 -0600   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Tue, 07 Feb 2023 13:11:07 -0600   Tue, 22 Mar 2022 00:32:51 -0600   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Tue, 07 Feb 2023 13:11:07 -0600   Tue, 22 Mar 2022 00:32:51 -0600   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Tue, 07 Feb 2023 13:11:07 -0600   Tue, 22 Mar 2022 00:33:23 -0600   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:   goodnodeip
  Hostname:     goodnode.ap-northeast-1.compute.internal
  InternalDNS:  goodnode.ap-northeast-1.compute.internal
Capacity:
  attachable-volumes-aws-ebs:  25
  cpu:                         2
  ephemeral-storage:           52416492Ki
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      7934440Ki
  pods:                        29
Allocatable:
  attachable-volumes-aws-ebs:  25
  cpu:                         1930m
  ephemeral-storage:           47233297124
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      7244264Ki
  pods:                        29
System Info:
  Machine ID:                 ec26c540fc98771f
  System UUID:                ec26c540-fc98-77
  Boot ID:                    034cb48b-8129-40
  Kernel Version:             5.4.181-99.354.amzn2.x86_64
  OS Image:                   Amazon Linux 2
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://20.10.7
  Kubelet Version:            v1.21.5-eks-9017834
  Kube-Proxy Version:         v1.21.5-eks-9017834
ProviderID:                   aws:///ap-northeast-1a/i-01a03da4ffb56c6f0
Non-terminated Pods:          (11 in total)
  Namespace                   Name                                                               CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                                                               ------------  ----------  ---------------  -------------  ---
  amazon-cloudwatch           cloudwatch-agent-b2cxj                                             200m (10%)    200m (10%)  200Mi (2%)       200Mi (2%)     322d
  amazon-cloudwatch           fluent-bit-f825k                                                   500m (25%)    0 (0%)      100Mi (1%)       200Mi (2%)     322d
  webapp                application A                            500m (25%)    1 (51%)     2G (26%)         4G (53%)       12h
  webapp                application B                                  0 (0%)        0 (0%)      0 (0%)           0 (0%)         12h
  webapp                APP_WITH_PROBLEMS                                         0 (0%)        0 (0%)      0 (0%)           0 (0%)         11h
  kube-system                 alb-ingress-controller-aws-load-balancer-controller-76df65d6qrx    0 (0%)        0 (0%)      0 (0%)           0 (0%)         12h
  kube-system                 alb-ingress-controller-aws-load-balancer-controller-76df65kwmss    0 (0%)        0 (0%)      0 (0%)           0 (0%)         12h
  kube-system                 aws-node-g7bp7                                                     10m (0%)      0 (0%)      0 (0%)           0 (0%)         322d
  kube-system                 coredns-54bc78bc49-6bdv6                                           100m (5%)     0 (0%)      70Mi (0%)        170Mi (2%)     12h
  kube-system                 coredns-54bc78bc49-vh2rv                                           100m (5%)     0 (0%)      70Mi (0%)        170Mi (2%)     12h
  kube-system                 kube-proxy-lt9bq                                                   100m (5%)     0 (0%)      0 (0%)           0 (0%)         322d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                    Requests         Limits
  --------                    --------         ------
  cpu                         1510m (78%)      1200m (62%)
  memory                      2403685Ki (33%)  4664010Ki (64%)
  ephemeral-storage           0 (0%)           0 (0%)
  hugepages-1Gi               0 (0%)           0 (0%)
  hugepages-2Mi               0 (0%)           0 (0%)
  attachable-volumes-aws-ebs  0                0
Events:                       <none>
  • Узел, где не работает ни предыдущее развертывание, ни новое.
Name:               badnode.ap-northeast-1.compute.internal
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=m5.large
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=ap-northeast-1
                    failure-domain.beta.kubernetes.io/zone=ap-northeast-1c
                    k8s.io/cloud-provider-aws=86af69e954aa5c8fc905ce14364ec305
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=badnode.ap-northeast-1.compute.internal
                    kubernetes.io/os=linux
                    node.kubernetes.io/instance-type=m5.large
                    topology.kubernetes.io/region=ap-northeast-1
                    topology.kubernetes.io/zone=ap-northeast-1c
Annotations:        node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Tue, 22 Mar 2022 00:25:27 -0600
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  badnode.ap-northeast-1.compute.internal
  AcquireTime:     <unset>
  RenewTime:       Tue, 07 Feb 2023 13:14:01 -0600
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Tue, 07 Feb 2023 13:12:59 -0600   Tue, 22 Mar 2022 00:25:25 -0600   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Tue, 07 Feb 2023 13:12:59 -0600   Tue, 22 Mar 2022 00:25:25 -0600   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Tue, 07 Feb 2023 13:12:59 -0600   Tue, 22 Mar 2022 00:25:25 -0600   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Tue, 07 Feb 2023 13:12:59 -0600   Tue, 22 Mar 2022 00:25:57 -0600   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:   badnodeip
  Hostname:     badnode.ap-northeast-1.compute.internal
  InternalDNS:  badnode.ap-northeast-1.compute.internal
Capacity:
  attachable-volumes-aws-ebs:  25
  cpu:                         2
  ephemeral-storage:           52416492Ki
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      7934440Ki
  pods:                        29
Allocatable:
  attachable-volumes-aws-ebs:  25
  cpu:                         1930m
  ephemeral-storage:           47233297124
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      7244264Ki
  pods:                        29
System Info:
  Machine ID:                 ec28188afbf50b034
  System UUID:                ec28188a-fbf5-0b0
  Boot ID:                    316e2549-9735-4fe4
  Kernel Version:             5.4.181-99.354.amzn2.x86_64
  OS Image:                   Amazon Linux 2
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://20.10.7
  Kubelet Version:            v1.21.5-eks-9017834
  Kube-Proxy Version:         v1.21.5-eks-9017834
ProviderID:                   aws:///ap-northeast-1c/i-056ee5ae8f99b7076
Non-terminated Pods:          (4 in total)
  Namespace                   Name                      CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                      ------------  ----------  ---------------  -------------  ---
  amazon-cloudwatch           cloudwatch-agent-v7kk2    200m (10%)    200m (10%)  200Mi (2%)       200Mi (2%)     322d
  amazon-cloudwatch           fluent-bit-mfhxk          500m (25%)    0 (0%)      100Mi (1%)       200Mi (2%)     322d
  kube-system                 aws-node-qsgkm            10m (0%)      0 (0%)      0 (0%)           0 (0%)         322d
  kube-system                 kube-proxy-nlgxk          100m (5%)     0 (0%)      0 (0%)           0 (0%)         322d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                    Requests    Limits
  --------                    --------    ------
  cpu                         810m (41%)  200m (10%)
  memory                      300Mi (4%)  400Mi (5%)
  ephemeral-storage           0 (0%)      0 (0%)
  hugepages-1Gi               0 (0%)      0 (0%)
  hugepages-2Mi               0 (0%)      0 (0%)
  attachable-volumes-aws-ebs  0           0
Events:                       <none>
resource "kubernetes_deployment" "ui_backend" {
  metadata {
    name      = local.name
    namespace = local.namespace
    labels = {
      "app.kubernetes.io/name"       = local.name
      "app.kubernetes.io/managed-by" = local.managed_by
    }
  }

  spec {
    replicas = 1

    selector {
      match_labels = {
        "app.kubernetes.io/name"       = local.name
        "app.kubernetes.io/managed-by" = local.managed_by
      }
    }

    template {
      metadata {
        labels = {
          "app.kubernetes.io/name"       = local.name
          "app.kubernetes.io/managed-by" = local.managed_by
        }
      }

      spec {
        service_account_name = local.name

        image_pull_secrets {
          name = "gitlab-auth"
        }

        container {
          image = var.docker_image
          name  = local.name
          env {
            name  = "JAVA_OPTS"
            value = "-Dspring.profiles.active=${var.environment} "
          }

          port {
            container_port = local.application_port
          }

          liveness_probe {
            http_get {
              path = "/actuator/health/liveness"
              port = local.application_port
            }

            initial_delay_seconds = 60
            period_seconds        = 30
          }

          readiness_probe {
            http_get {
              path = "/actuator/health/readiness"
              port = local.application_port
            }

            initial_delay_seconds = 60
            period_seconds        = 10
          }

        }
      }
    }
  }
}

журналы с logging.level.root=DEBUG

{"timestamp":"2023-02-08T21:28:40.448Z","level":"DEBUG","thread":"main","logger":"org.springframework.boot.availability.ApplicationAvailabilityBean","message":"Application availability state LivenessState changed to CORRECT","context":"default","nanotime":142674280192537}
{"timestamp":"2023-02-08T21:28:40.451Z","level":"DEBUG","thread":"main","logger":"org.springframework.boot.devtools.restart.Restarter","message":"Creating new Restarter for thread Thread[main,5,main]","context":"default","nanotime":142674282973006}
{"timestamp":"2023-02-08T21:28:40.454Z","level":"DEBUG","thread":"main","logger":"org.springframework.boot.availability.ApplicationAvailabilityBean","message":"Application availability state ReadinessState changed to ACCEPTING_TRAFFIC","context":"default","nanotime":142674286139388}
{"timestamp":"2023-02-08T21:28:40.496Z","level":"DEBUG","thread":"main","logger":"org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter","message":"Filter 'requestContextFilter' configured for use","context":"default","nanotime":142674328227052}

Каковы различия между версиями? Вы фактически пропустили интересные биты в своем журнале (это информация о запуске (или незапуске) приложения).

M. Deinum 07.02.2023 09:36

не могли бы вы опубликовать полную конфигурацию pod yaml? порт 8080 выставлен в конфигурации модуля?

SimGel 07.02.2023 10:58

Вы проверили контекстный путь: stackoverflow.com/questions/55877188/…

SimGel 07.02.2023 11:07

@M.Deinum M.Deinum Я добавил описание узлов, кроме модулей, они ничем не отличаются. Я также добавил полный журнал

Ricardo Rubik Ruiz 07.02.2023 21:22

@SimGel да, порт 8080 открыт, добавил конфиг yaml.

Ricardo Rubik Ruiz 07.02.2023 21:30

Приложению требуется некоторое время для запуска около 30 секунд, это проблема? Вы можете включить полное ведение журнала отладки logging.level.root=DEBUG или, по крайней мере, для веб-материалов logging.level.web=DEBUG, которые дадут некоторую информацию о том, что происходит.

M. Deinum 08.02.2023 09:04

@M.Deinum Используя предложенный вами уровень входа в систему, я могу видеть журнал своего последнего редактирования, поэтому теперь я могу с уверенностью сказать, что spring достигает состояния готовности, но Tomcat (?) Не привязывает порт правильно.

Ricardo Rubik Ruiz 08.02.2023 23:36

Открытые порты изменились? Здесь нет ничего, что могло бы этому помешать, поэтому я предлагаю вам вернуться и проверить, что изменилось между рабочей версией и этой.

M. Deinum 09.02.2023 09:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
149
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

удалить -javaagent:/workspace/WEB-INF/lib/honeycomb-opentelemetry-javaagent-1.0.0.jar

редактировать: Похоже, добавление -Dotel.instrumentation.tomcat.enabled=false также решит проблему.

Благодаря переполнению стека я не могу комментировать вопрос. Но мое весеннее загрузочное приложение начало иметь 404 как на приводе, так и на веб-частях после добавления opentelemetry-javaagent

Gentoli 09.02.2023 20:21

По этой причине модуль будет готов с последним котом, если я либо удалю, либо добавлю новый аргумент. Спасибо!

Ricardo Rubik Ruiz 15.02.2023 19:22

Другие вопросы по теме