Hi. I am installing GDCN on an EKS with external ElastiCache cluster (with Redis interface) and Aurora RDS (Postgres family) following the instuctions on
https://www.gooddata.com/docs/cloud-native/3.7/deploy-and-install/cloud-native/environment/aws/. But I cannot make the following pod running correctly.
$ kubectl get pod -n gooddata-cn | grep 0/
gooddata-cn-afm-exec-api-7d46b6f777-tz7bq 0/1 Running 0 115m
gooddata-cn-afm-exec-api-7d46b6f777-vt99l 0/1 Running 0 115m
gooddata-cn-cache-gc-28648500-zlkwv 0/1 Completed 0 91m
gooddata-cn-cache-gc-28648560-2rkqp 0/1 Pending 0 31m
gooddata-cn-calcique-5f566c5c7c-tkhqv 0/1 Running 0 115m
gooddata-cn-calcique-5f566c5c7c-xkzp8 0/1 Running 0 115m
gooddata-cn-dex-69d7b4d6cb-6wckz 0/1 CrashLoopBackOff 23 (4m57s ago) 101m
gooddata-cn-dex-69d7b4d6cb-9t7lk 0/1 CrashLoopBackOff 23 (4m19s ago) 101m
gooddata-cn-metadata-api-56766b5744-qbngc 0/1 CrashLoopBackOff 24 (4m8s ago) 115m
gooddata-cn-metadata-api-56766b5744-xmffv 0/1 CrashLoopBackOff 24 (4m ago) 115m
gooddata-cn-pulsar-cleanup-4xlf4 0/1 Error 0 97m
gooddata-cn-pulsar-cleanup-s9wz8 0/1 Error 0 106m
Let me first ask 4 questions to resolve what I think is the important ones.
1. For "gooddata-cn/gooddata-cn-metadata-api-56766b5744-qbngc:check-postgres-db", I see the log below. I am not sure if the connection is good or not? It seems to be "accepting connections", but "Stream closed EOF". (Same thing to gooddata-cn/gooddata-cn-dex-69d7b4d6cb-9t7lk:check-postgres-db)
test-md-aurora-mdinstance1-lyu8ap647zmh.c23ofcaev62v.us-east-1.rds.amazonaws.com:5432 - accepting connections
Stream closed EOF for gooddata-cn/gooddata-cn-metadata-api-56766b5744-qbngc (check-postgres-db)
2. For "gooddata-cn/gooddata-cn-metadata-api-56766b5744-qbngc:metadata-api", the last few lines of the log are listed below. Is that due to the question above, or new issue?
org.springframework.boot.loader.Launcher.launch(Launcher.java:58)\n\tat org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)\nCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'aeadEncryptionService' defined in file [/app/BOOT-INF/classes/com/gooddata/tiger/metadata/service/AeadEncryptionService.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.gooddata.tiger.metadata.service.AeadEncryptionService]: Constructor threw exception; nested exception is java.io.EOFException: End of input at line 1 column 1 path $\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:310)\n\tat ......
\t... 27 more\nCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.gooddata.tiger.metadata.service.AeadEncryptionService]: Constructor threw exception; nested exception is java.io.EOFException: End of input at line 1 column 1 path $\n\tat org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:226)\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:306)\n\t... 57 more\nCaused by: java.io.EOFException: End of input at line 1 column 1 path $\n\tat com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1457)\n\tat com.google.gson.stream.JsonReader.doPeek(JsonReader.java:558)\n\tat com.google.gson.stream.JsonReader.peek(JsonReader.java:433)\n\tat com.google.crypto.tink.internal.JsonParser$JsonElementTypeAdapter.read(JsonParser.java:188)\n\tat com.google.crypto.tink.internal.JsonParser.parse(JsonParser.java:262)\n\tat com.google.crypto.tink.JsonKeysetReader.read(JsonKeysetReader.java:168)\n\tat com.google.crypto.tink.CleartextKeysetHandle.read(CleartextKeysetHandle.java:62)\n\tat com.gooddata.tiger.metadata.service.AeadEncryptionService.<init>(EncryptionService.kt:41)\n\tat java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)\n\tat java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)\n\tat java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)\n\tat kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41)\n\tat kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:207)\n\tat kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:112)\n\tat org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:903)\n\tat org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:198)\n\t... 59 more\n"}
Stream closed EOF for gooddata-cn/gooddata-cn-metadata-api-56766b5744-qbngc (metadata-api)
3. For "gooddata-cn/gooddata-cn-dex-69d7b4d6cb-9t7lk:dex", the log below. Is it still more of a connection issue or it actually connected but cannot create new table?
{"time":"2024-06-20T20
5747.74770439Z","level":"INFO","msg":"Version info","dex_version":"v2.40.0","go":{"version":"go1.22.3","os":"linux","arch":"amd64"}}
{"time":"2024-06-20T20
5747.747800734Z","level":"INFO","msg":"config issuer","issuer":"
https://localhost/dex"}
failed to initialize storage: failed to perform migrations: creating migration table: pq: no pg_hba.conf entry for host "10.20.0.143", user "postgres", database "dex", no encryption
Stream closed EOF for gooddata-cn/gooddata-cn-dex-69d7b4d6cb-9t7lk (dex)
4. For "gooddata-cn/gooddata-cn-calcique-5f566c5c7c-xkzp8:calcique", I saw the following logs repeating every 10 secs. It seems it is "Unable to connect to [
clustercfg.test-redis.uoet5d.use1.cache.amazonaws.com:6379]". But I created an Ubuntu pod in the same EKS, installed "redis-cli" and can connect to the redis using "redis-cli -c -h
clustercfg.test-redis.uoet5d.use1.cache.amazonaws.com -p 6379 --tls -a password", and run a couple of "set" and "get" commands. So I am not sure why "calcique" is having trouble connecting it. How to figure it out?
{"ts":"2024-06-20 21
0340.556","level":"INFO","logger":"org.zalando.logbook.Logbook","thread":"reactor-http-io_uring-2","traceId":"79dc36876d37b8dc","spanId":"79dc36876d37b8dc","msg":"HTTP response","accept":"*/*","action":"httpResponse","correlationId":"b85e03c3e2020d3a","durationMs":"2","method":"GET","remote":"/169.254.175.250:33974","state":"200","uri":"
http://10.20.0.164:9012/actuator/health/liveness","user-agent":"kube-probe/1.29+"}
{"ts":"2024-06-20 21
0342.269","level":"INFO","logger":"org.zalando.logbook.Logbook","thread":"reactor-http-io_uring-1","msg":"HTTP response","accept":"*/*","action":"httpResponse","correlationId":"9915dbc9f650c08d","durationMs":"9999","method":"GET","remote":"/169.254.175.250:33964","state":"200","uri":"
http://10.20.0.164:9012/actuator/health/readiness","user-agent":"kube-probe/1.29+"}
{"ts":"2024-06-20 21
0342.269","level":"WARN","logger":"org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator","thread":"boundedElastic-20","traceId":"d760544a017e50f7","spanId":"d760544a017e50f7","msg":"Redis health check failed","exc":"org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisCommandInterruptedException: Command interrupted\n\tat ... 31 more\n"}
{"ts":"2024-06-20 21
0342.274","level":"ERROR","logger":"com.gooddata.tiger.grpc.healthcheck.GrpcHealthCheck","thread":"boundedElastic-26","traceId":"c733ed64e8abdca0","spanId":"c733ed64e8abdca0","msg":"Error during GRPC Healthcheck call","action":"grpcHealthCheck","service":"tiger.MetadataStoreService","exc":"io.grpc.StatusException: UNAVAILABLE: Unable to resolve host gooddata-cn-metadata-api-headless\n\tat io.grpc.Status.asException(Status.java:552)\n\tat io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:296)\n\tat brave.grpc.TracingClientInterceptor$TracingClientCallListener.onClose(TracingClientInterceptor.java:202)\n\tat
n"}
{"ts":"2024-06-20 21
0342.312","level":"WARN","logger":"io.lettuce.core.cluster.topology.DefaultClusterTopologyRefresh","thread":"lettuce-io_uringEventLoop-20-2","msg":"Unable to connect to [
clustercfg.test-redis.uoet5d.use1.cache.amazonaws.com:6379]: Connection initialization timed out. Command timed out after 20 second(s)","exc":"io.lettuce.core.RedisCommandTimeoutException: Connection initialization timed out. Command timed out after 20 second(s)\n\tat io.lettuce.core.internal.ExceptionFactory.createTimeoutException(ExceptionFactory.java:71)\n\tat io.lettuce.core.protocol.RedisHandshakeHandler.lambda$channelRegistered$0(RedisHandshakeHandler.java:62)\n\t
Thank you in advance.