spring-cloud-kubernetes icon indicating copy to clipboard operation
spring-cloud-kubernetes copied to clipboard

failed to run example "kubernetes-loadbalancer-example"

Open brucevoin opened this issue 4 years ago • 3 comments

When i tried to run example "kubernetes-loadbalancer-example" in spring-cloud-kubernetes-examples, I get the error log below:


2021-07-22 07:45:09.517  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8080
2021-07-22 07:45:09.565  INFO 1 --- [           main] o.s.c.k.e.GreetingServiceApplication     : Started GreetingServiceApplication in 14.419 seconds (JVM running for 16.546)
2021-07-22 07:46:01.029  WARN 1 --- [oundedElastic-1] o.s.c.l.core.RoundRobinLoadBalancer      : No servers available for service: name-service
2021-07-22 07:46:01.035  WARN 1 --- [oundedElastic-1] eactorLoadBalancerExchangeFilterFunction : LoadBalancer does not contain an instance for the service name-service
2021-07-22 07:46:01.396 ERROR 1 --- [oundedElastic-1] a.w.r.e.AbstractErrorWebExceptionHandler : [61a71ffa-1]  500 Server Error for HTTP GET "/greeting"

org.springframework.web.reactive.function.client.WebClientResponseException$ServiceUnavailable: 503 Service Unavailable from UNKNOWN 
	at org.springframework.web.reactive.function.client.WebClientResponseException.create(WebClientResponseException.java:224) ~[spring-webflux-5.3.9.jar!/:5.3.9]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint ⇢ 503 from GET http://name-service/name?delay=0 [DefaultWebClient]
	|_ checkpoint ⇢ Handler org.springframework.cloud.kubernetes.examples.GreetingController#getGreeting(int) [DispatcherHandler]
	|_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ HTTP GET "/greeting" [ExceptionHandlingWebHandler]
Stack trace:
		at org.springframework.web.reactive.function.client.WebClientResponseException.create(WebClientResponseException.java:224) ~[spring-webflux-5.3.9.jar!/:5.3.9]
		at org.springframework.web.reactive.function.client.DefaultClientResponse.lambda$createException$1(DefaultClientResponse.java:213) ~[spring-webflux-5.3.9.jar!/:5.3.9]
		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:150) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoCollect$CollectSubscriber.onSubscribe(MonoCollect.java:103) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:120) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onNext(FluxDematerialize.java:98) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onNext(FluxDematerialize.java:44) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:421) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drain(FluxFlattenIterable.java:686) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.onNext(FluxFlattenIterable.java:250) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:284) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:232) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onComplete(FluxDematerialize.java:121) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onNext(FluxDematerialize.java:91) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onNext(FluxDematerialize.java:44) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxIterable$IterableSubscription.fastPath(FluxIterable.java:338) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:225) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.request(FluxDematerialize.java:127) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onSubscribe(MonoIgnoreElements.java:72) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onSubscribe(FluxPeek.java:171) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onSubscribe(FluxDematerialize.java:77) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:164) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:86) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4338) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:255) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:128) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.DrainUtils.postCompleteDrain(DrainUtils.java:132) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.DrainUtils.postComplete(DrainUtils.java:187) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxMaterialize$MaterializeSubscriber.onComplete(FluxMaterialize.java:141) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxTake$TakeSubscriber.onComplete(FluxTake.java:153) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxTake$TakeSubscriber.onNext(FluxTake.java:133) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onNext(FluxTimeout.java:180) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:128) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at org.springframework.cloud.commons.publisher.FluxFirstNonEmptyEmitting$FirstNonEmptyEmittingSubscriber.onComplete(FluxFirstNonEmptyEmitting.java:325) ~[spring-cloud-commons-3.1.0-SNAPSHOT.jar!/:3.1.0-SNAPSHOT]
		at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.onComplete(FluxSubscribeOn.java:166) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:147) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:86) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.4.8.jar!/:3.4.8]
		at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_262]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_262]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_262]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_262]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_262]
		at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_262]
2021-07-22T07:46:01.401454000Z

Here is name-service.yaml:


apiVersion: apps/v1
kind: Deployment
metadata:
  name: name-service-deployment
  labels:
    app: name-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: name-service
  template:
    metadata:
      labels:
        app: name-service
    spec:
      containers:
      - name: name-service
        image: docker.io/library/name-service:v1.0.0
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: name-service-service
  labels:
    app: name-service
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
  selector:
    app: name-service

And here is greeting-service.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: greeting-service-deployment
  labels:
    app: greeting-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: greeting-service
  template:
    metadata:
      labels:
        app: greeting-service
    spec:
      containers:
      - name: greeting-service
        image: docker.io/library/greeting-service:v1.0.0
        ports:
        - containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: greeting-service-service
  labels:
    app: greeting-service
spec:
  type: LoadBalancer
  ports:
  - port: 8070
    targetPort: 8080
  selector:
    app: greeting-service

Here is Dockerfile


FROM fabric8/java-jboss-openjdk8-jdk

USER root

ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8

# Prepare by downloading dependencies
COPY /target/*.jar /home/

ENTRYPOINT ["java","-jar","/home/greeting-service-2.1.0-SNAPSHOT.jar"]

Please help me.

brucevoin avatar Jul 22 '21 08:07 brucevoin

add the environment: kubernetes: v1.21.2(k8s on desktop MacOS)

brucevoin avatar Jul 23 '21 07:07 brucevoin

and same error with kubernetes version v1.18.9

brucevoin avatar Jul 23 '21 07:07 brucevoin

I thought this error may be relevant with Service Account,but after applied below Service Account binding,still the same error: ` kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: default name: namespace-reader rules:

  • apiGroups: ["", "extensions", "apps"] resources: ["configmaps", "pods", "services", "endpoints", "secrets"] verbs: ["get", "list", "watch"]

kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: namespace-reader-binding namespace: default subjects:

  • kind: ServiceAccount name: default apiGroup: "" roleRef: kind: Role name: namespace-reader apiGroup: "" `

brucevoin avatar Aug 02 '21 03:08 brucevoin

Can you please try this with either 2021.0.5 or 2022.0.0?

ryanjbaxter avatar Jan 13 '23 21:01 ryanjbaxter

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

spring-cloud-issues avatar Jan 20 '23 21:01 spring-cloud-issues

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

spring-cloud-issues avatar Jan 27 '23 21:01 spring-cloud-issues