Hi I tried this sample akka cluster k8 project
https://developer.lightbend.com/start/?group=akka&project=akka-sample-cluster-kubernetes-scala
and followed the akka doc
I am running this without any change on minikube. But getting this problem—
[2022-05-16 11:39:36,217] [INFO] [akka.management.cluster.bootstrap.LowestAddressJoinDecider] [akkaBootstrapInProgress] [appka-akka.actor.default-dispatcher-11] - Discovered [3] contact points, confirmed [0], which is less than the required [3], retrying MDC: {akkaAddress=akka://appka@172.17.0.4:25520, akkaContactPoints=172-17-0-5.appka-1.pod.cluster.local:0, 172-17-0-6.appka-1.pod.cluster.local:0, 172-17-0-4.appka-1.pod.cluster.local:0, sourceThread=appka-akka.actor.default-dispatcher-11, akkaSource=LowestAddressJoinDecider(akka://appka), sourceActorSystem=appka, akkaTimestamp=11:39:36.217UTC, akkaSeedNodes=}
[2022-05-16 11:39:36,637] [WARN] [akka.management.cluster.bootstrap.internal.HttpContactPointBootstrap] [] [appka-akka.actor.default-dispatcher-26] - Probing [http://172-17-0-5.appka-1.pod.cluster.local:8558/bootstrap/seed-nodes] failed due to: Probing timeout of [http://172-17-0-5.appka-1.pod.cluster.local:8558] MDC: {akkaAddress=akka://appka@172.17.0.4:25520, sourceThread=appka-akka.actor.default-dispatcher-11, akkaSource=akka://appka@172.17.0.4:25520/system/bootstrapCoordinator/contactPointProbe-172-17-0-5.appka-1.pod.cluster.local-8558, sourceActorSystem=appka, akkaTimestamp=11:39:36.637UTC}
[2022-05-16 11:39:36,637] [ERROR] [akka.management.cluster.bootstrap.internal.HttpContactPointBootstrap] [] [appka-akka.actor.default-dispatcher-26] - Overdue of probing-failure-timeout, stop probing, signaling that it's failed MDC: {akkaAddress=akka://appka@172.17.0.4:25520, sourceThread=appka-akka.actor.default-dispatcher-11, akkaSource=akka://appka@172.17.0.4:25520/system/bootstrapCoordinator/contactPointProbe-172-17-0-5.appka-1.pod.cluster.local-8558, sourceActorSystem=appka, akkaTimestamp=11:39:36.637UTC}
.conf file
akka {
loglevel = "DEBUG"
actor.provider = cluster
coordinated-shutdown.exit-jvm = on
cluster {
shutdown-after-unsuccessful-join-seed-nodes = 60s
}
}
#management-config
akka.management {
cluster.bootstrap {
contact-point-discovery {
# pick the discovery method you'd like to use:
discovery-method = kubernetes-api
required-contact-point-nr = ${REQUIRED_CONTACT_POINT_NR}
}
}
}
#management-config
akka.management {
health-checks {
readiness-checks {
example-ready = "akka.sample.cluster.kubernetes.DemoHealthCheck"
}
}
}
yml file for k8s
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: appka
name: appka
namespace: appka-1
spec:
replicas: 3
selector:
matchLabels:
app: appka
template:
metadata:
labels:
app: appka
actorSystemName: appka
spec:
containers:
- name: appka
image: akka-sample-cluster-kubernetes:latest
# remove for real clusters, useful for minikube
imagePullPolicy: Never
readinessProbe:
httpGet:
path: /ready
port: management
periodSeconds: 10
failureThreshold: 3
initialDelaySeconds: 10
livenessProbe:
httpGet:
path: "/alive"
port: management
periodSeconds: 10
failureThreshold: 5
initialDelaySeconds: 20
ports:
# akka-management and bootstrap
- name: management
containerPort: 8558
protocol: TCP
- name: http
containerPort: 8080
protocol: TCP
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: REQUIRED_CONTACT_POINT_NR
value: "3"
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: pod-reader
namespace: appka-1
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: appka-1
subjects:
# Note the `name` line below. The first default refers to the namespace. The second refers to the service account name.
# For instance, `name: system:serviceaccount:myns:default` would refer to the default service account in namespace `myns`
- kind: User
name: system:serviceaccount:appka-1:default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io