Zum Inhalt springen

Helm Kubernetes


TomDelonge

Empfohlene Beiträge

Hallo, ich suche jemanden der sich mit helm und kubernetes auskennt.

Mein Problem ist aktuell dieser Fehler:
Error: INSTALLATION FAILED: repo tarb not found

tarb ist der Name meines Projektes.
Ich habe einen helm chart mit einer bitnami mysql und versuche meine microservice endpunkte von windows postman über minikube in meinem cluster zu erreichen.

Ich habe jetzt schon ein docker image auf docker hub hochgeladen von meinem tarb projekt.
Jetzt müsste ich in meiner values.yaml bei image: irgendwas eintragen, aber ich weiß nicht was genau.

Vorher stand bei image: repository: nginx und das habe ich jetzt hier durch ersetzt:

image:
registry: docker.io
repository: tomdelonge/tarb
pullPolicy: IfNotPresent
tag: latest

Weiß aber nicht ob das richtig ist. Kenne mir nur sehr wenig mit helm und kubernetes aus.

 

Wenn ich jetzt helm install mache, dann kommt dieser Fehler.
 


 

 

Bearbeitet von TomDelonge
Was vergessen
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also image ist der image-Tag Deines Docker-Images. Beispielhaft für https://hub.docker.com/_/postgres (siehe https://hub.docker.com/_/postgres/tags) wäre postgres:latest ein Tag, sprich image: postgres:latest. Auf die explizite Angabe von Repository, Tag & Registry kannst Du verzichten, da standardmäßig die Docker Registry verwendet wird.

Bearbeitet von dardan
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, danke für die Antwort, aber ich bin immer noch lost wie ich jetzt mein Problem löse?
Wenn ich dich richtig verstanden habe sieht es jetzt so aus:
image:

Weil du scheibst, dass ich auf die Angabe von Repository, Tag & Registry verzichten kann.
Das heißt da steht gar nichts mehr.

Meinem bisherigem Wissenstand nach schreibt man hinter image: nichts mehr hin. Das dient nur als quasi Pfadangabe oder Kategorie wo weitere tags folgen. Ist das korrekt?
Das heißt irgendein tag muss ich ja hinzufügen wo ich dann mein image angeben kann?
Wie sieht das tag dafür aus und in welcher Form muss ich das image angeben? Einfach nur tarb oder tomdelonge/tarb, weil mein account auf dockerhub so heißt oder wie genau muss das aussehen?


Wie sage ich denn jetzt meinem helm chart wo er das image meiner tarb app herbekommt?


Vielleicht hilft meine komplette values.yaml weiter um Licht ins dunkle zu bringen?
 

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

replicaCount: 2

mysql:
enabled: true
secondary:
replicaCount: 2
auth:
username: ----
password: ------
rootPassword: ------
# url: mysql.svc.dev.cluster.local
url: r2dbc:mysql://mysql.svc.dev.cluster.local:3306/app_database

image:
repository: tomdelonge/tarb
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: latest

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

nodeSelector: {}

tolerations: []

affinity: {}


 

Bearbeitet von TomDelonge
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, helm install funktioniert jetzt wieder.

Ich habe einfach nur die registry Zeile gelöscht und dann folgendes gemacht:
1. minikube delete
2. minikube start
3. helm dependency build
4. kubectl create namespace <app_name>
5. helm install helm-chart-tarb <app_project_folder>/<app_helm_folder>--namespace <app_namespace>
6. kubectl config set-context --current --namespace=<app_namespace>
7. minikube addons enable ingress
8. minikube tunnel

Wörter in <> entsprechend ersetzen mit den Namen der Ordner und Projektnamen etc.

Jetzt startet zu mindestens der chart wieder, aber meine app pods gehen nicht:
NAME                                        READY   STATUS             RESTARTS        AGE
helm-chart-tarb-mysql-0                     1/1     Running            0               17m
helm-chart-tarb-tarb-app-74967bbc7c-5c7pf   0/1     CrashLoopBackOff   7 (4m49s ago)   17m
helm-chart-tarb-tarb-app-74967bbc7c-5xdmc   0/1     CrashLoopBackOff   7 (4m39s ago)   17m

Irgendeine Idee woran das liegen kann?

Bearbeitet von TomDelonge
Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Fehler im ersten Beitrag deutet eher darauf hin, dass der command für dein 'helm install' falsch war. Wenn du das Chart nur lokal vorliegen hast, musst du das Chart directory auch direkt referenzieren (so wie du es hinterher gemacht hast). Diese Umwege, minikube neu zu erstellen, etc hättest du dir sparen können. 

 

CrashLoopBackOff deutet normalerweise auf ein Abstürzen/Neustarten eines Containers im Pod hin. Das passiert auch, wenn der Container durchläuft und seinen Startprozess beendet. Mit 'kubectl logs' kannst du dir die Logs der verschiedenen Container im Pod ansehen. Ggfs. mit '-p' um die Logs des vorherigen Runs zu sehen. 

 

Grundsätzlich würde ich dir raten erstmal auf Helm zu verzichten und die Manifeste selbst zu bauen. Da lernt man mehr und es nimmt gerade am Anfang die Komplexität des Helm-Chart-Templating raus. 

Bearbeitet von Listener
Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe meine Probleme lösen können.
Ich habe in meiner deployment.yaml unter spec: template: spec: containers: 
die livenessProbe: und die readinessProbe: komplett rausgenommen.
 

Jetzt startet alles wie gewünscht.

In meiner bitnami mySQL DB helm chart erstelle ich beim "helm dependency build" jetzt meine Datenbank namens app_database

In der values.yaml habe ich das wie folgt hinzugefügt:
 

mysql:
  enabled: true
  secondary:
    replicaCount: 2
  auth:
    username: <name des users>
    password: <passwort des users>
    rootPassword: <passwort von root>
    createDatabase: true
    database: <name der datenbank>
  url: r2dbc:mysql://mysql.svc.dev.cluster.local:3306/app_database

Da ich eine r2db connection herstellen will kommt jetzt bei postman wenn ich eine Abfrage abschicke folgender Fehler:
{
    "timestamp": "2023-06-12T16:00:23.367+00:00",
    "path": "/tarb/techterms",
    "status": 500,
    "error": "Internal Server Error",
    "requestId": "50302f76-1"
}

Ist ja prinzipiell schon Mal gut, weil die Anfrage in meiner App beim Endpunkt ankommt. Nur vom Endpunkt geht es jetzt nicht weiter zur Datenbank.

Wenn ich mir die logs ausgeben lasse mit: kubectl logs <pod name der app> dann sehe ich folgende Fehlermeldung:
15:57:29 temapi.TechAbbrRefBookApplicationKt - Starting TechAbbrRefBookApplicationKt v0.0.1-SNAPSHOT using Java 17.0.2 with PID 7 (/tarb.jar started by root in /)
15:57:29 temapi.TechAbbrRefBookApplicationKt - No active profile set, falling back to 1 default profile: "default"
15:57:32 r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
15:57:32 r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data R2DBC repositories in DEFAULT mode.
15:57:32 r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 284 ms. Found 2 R2DBC repository interfaces.
15:57:39 t.web.embedded.netty.NettyWebServer - Netty started on port 8080
15:57:39 temapi.TechAbbrRefBookApplicationKt - Started TechAbbrRefBookApplicationKt in 10.689 seconds (process running for 11.187)
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 .e.AbstractErrorWebExceptionHandler - [50302f76-1]  500 Server Error for HTTP POST "/tarb/techterms"
org.springframework.dao.DataAccessResourceFailureException: Failed to obtain R2DBC Connection
        at org.springframework.r2dbc.connection.ConnectionFactoryUtils.lambda$getConnection$0(ConnectionFactoryUtils.java:90)
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
        *__checkpoint ⇢ Handler itemapi.controller.TechTermController#createTechTerm(TechTerm, Continuation) [DispatcherHandler]
        *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerWebExchangeContextFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ HTTP POST "/tarb/techterms" [ExceptionHandlingWebHandler]
Original Stack Trace:
                at org.springframework.r2dbc.connection.ConnectionFactoryUtils.lambda$getConnection$0(ConnectionFactoryUtils.java:90)
                at reactor.core.publisher.Mono.lambda$onErrorMap$28(Mono.java:3773)
                at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
                at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
                at reactor.core.publisher.FluxRetry$RetrySubscriber.onError(FluxRetry.java:95)
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180)
                at reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
                at reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:429)
                at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180)
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:241)
                at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:315)
                at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onError(MonoIgnoreThen.java:278)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at reactor.core.publisher.FluxHandle$HandleSubscriber.onError(FluxHandle.java:212)
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onError(FluxConcatArray.java:207)
                at reactor.core.publisher.EmitterProcessor.checkTerminated(EmitterProcessor.java:594)
                at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:461)
                at reactor.core.publisher.EmitterProcessor.tryEmitError(EmitterProcessor.java:295)
                at reactor.core.publisher.InternalManySink.emitError(InternalManySink.java:98)
                at reactor.core.publisher.EmitterProcessor.onError(EmitterProcessor.java:284)
                at reactor.core.publisher.LambdaMonoSubscriber.doError(LambdaMonoSubscriber.java:155)
                at reactor.core.publisher.LambdaMonoSubscriber.onError(LambdaMonoSubscriber.java:150)
                at reactor.core.publisher.MonoTakeLastOne$TakeLastOneSubscriber.onError(MonoTakeLastOne.java:134)
                at reactor.core.publisher.FluxHandle$HandleSubscriber.onError(FluxHandle.java:212)
                at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:117)
                at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
                at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128)
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201)
                at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
                at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
                at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
                at reactor.core.publisher.EmitterProcessor.onNext(EmitterProcessor.java:309)
                at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
                at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128)
                at reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:377)
                at reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411)
                at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
                at dev.miku.r2dbc.mysql.client.MessageDuplexCodec.channelRead(MessageDuplexCodec.java:96)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
                at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
                at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
                at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1383)
                at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1246)
                at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1295)
                at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
                at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
                at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
                at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
                at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
                at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499)
                at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)
                at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
                at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
                at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
                at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: io.r2dbc.spi.R2dbcPermissionDeniedException: Authentication type 'þsha256_password' not supported
        at dev.miku.r2dbc.mysql.authentication.MySqlAuthProvider.build(MySqlAuthProvider.java:53)
        at dev.miku.r2dbc.mysql.LoginFlow.changeAuth(LoginFlow.java:119)
        at dev.miku.r2dbc.mysql.LoginFlow.access$900(LoginFlow.java:55)
        at dev.miku.r2dbc.mysql.LoginFlow$State$3.lambda$handle$2(LoginFlow.java:326)
        at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:112)
        at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201)
        at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
        at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
        at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
        at reactor.core.publisher.EmitterProcessor.onNext(EmitterProcessor.java:309)
        at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:128)
        at reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:377)
        at reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411)
        at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at dev.miku.r2dbc.mysql.client.MessageDuplexCodec.channelRead(MessageDuplexCodec.java:96)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1383)
        at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1246)
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1295)
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer
16:00:23 dbc.mysql.client.MessageDuplexCodec - Connection has been closed by peer


Kann da jemand was mit anfangen?

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin kein Entwickler und kann daher zu deinem App-Problem nichts sagen (außerdem ist die Formatierung für das Forum ein Graus und ich habe ehrlich gesagt keine Lust das so durchzulesen).

Bzgl. der Liveness und Readiness Probe würde ich dir empfehlen die nicht einfach nur aus dem Manifest rauszukegeln. Die haben eine wichtige Daseinsberechtigung und enablen dich im Endeffekt wirklich hochverfügbare/Self-Healing-Systeme aufzusetzen. Viele Frameworks haben auch die Funktionen bereits implementiert und du solltest das in deiner Applikation auch respektieren. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Stunden schrieb TomDelonge:

Kann da jemand was mit anfangen?

Steht doch da:

vor 13 Stunden schrieb TomDelonge:

org.springframework.dao.DataAccessResourceFailureException: Failed to obtain R2DBC Connection

...

Caused by: io.r2dbc.spi.R2dbcPermissionDeniedException: Authentication type 'þsha256_password' not supported
 

 

Bearbeitet von pr0gg3r
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...