Он также обеспечивает проверку готовности, которая ожидает, пока модуль не присоединится к кластеру. И живой чек.
есть образ докера и соответствующий файл yaml для развертывания с использованием kubernetes. Приложение, которое мы создали, находится в Scala с akka-http. Мы использовали акка-кластер. У нас есть конкретная переменная (в нашем случае начальные узлы - кластер akka) в файле конфигурации, который используется в коде нашего приложения, использующего pod ip. Но мы не получим IP-адрес pod, пока не будет выполнено развертывание. Как мы должны решить проблему? Помогут ли переменные среды, если да, то как?
Более конкретно, после того, как образы докера развернуты в контейнере в модуле, и когда контейнер запускается, IP-адрес модуля уже назначен. Итак, можем ли мы программно или иным образом настроить pod ips в нашем коде или конфигурационном файле до запуска процесса в контейнере?
Для справки это наш файл конфигурации:
akka {
actor {
provider = "akka.cluster.ClusterActorRefProvider"
}
remote {
log-remote-lifecycle-events = off
netty.tcp {
hostname = "127.0.0.1"
port = 0
}
}
cluster {
seed-nodes = [
"akka.tcp://[email protected]:3000",
"akka.tcp://[email protected]:3001",
],
metrics {
enabled = off
}
}
}
service {
validateTokenService {
ml.pubkey.path = "<filePath>"
}
ml_repository {
url = <url address>
}
replication.factor = 3
http.service.interface = "0.0.0.0"
http.service.port = 8080
}
В приведенном выше файле вместо akka.remote.netty.tcp.hostname в качестве «127.0.0.1» нам необходим pod-ip. Таким образом, мы можем использовать его в начальных узлах как:
seed-nodes = [
"akka.tcp://our-system@hostname:3000",
"akka.tcp://our-system@hostname:3001",
],
Как мы можем это сделать? Заранее спасибо.