kubernetes를 사용하는 배포 용 도커 이미지와 해당 yaml 파일이 있습니다. 우리가 만든 응용 프로그램은 akka-http와 함께 scala에 있습니다. 우리는 akka 클러스터를 사용했습니다. pod ip를 사용하는 응용 프로그램 코드에서 사용되는 구성 파일에 특정 변수 (이 경우에는 시드 노드 - akka 클러스터)가 있습니다. 그러나 배치가 완료되지 않으면 우리는 포드 IP를 얻지 못할 것입니다. 문제를 어떻게 해결해야합니까? 환경 변수가 도움이 될까요? 그렇다면 어떻게됩니까?Kubernetes - Akka 클러스터링 배포
더 구체적으로 말하면, 도커 이미지가 컨테이너의 컨테이너에 배치되고 컨테이너가 시작될 때, 팝업 IP가 이미 할당됩니다. 따라서 프로세스가 컨테이너에서 시작되기 전에 코드 또는 구성 파일에 프로그래밍 방식으로 또는 다른 방법으로 포드 ips를 구성 할 수 있습니까? 우리는 포드가 필요 대신 "127.0.0.1"로 akka.remote.netty.tcp.hostname있는의,
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
}
위의 파일에서 : 참고로
, 이것은 우리의 구성 파일입니다 -ip.seed-nodes = [
"akka.tcp://[email protected]:3000",
"akka.tcp://[email protected]:3001",
],
우리가 어떻게 그렇게 할 수 있습니다 : 그래서, 우리는 씨앗 노드에서 사용할 수있는? 미리 감사드립니다.
이 위대한 blogpost 체크 아웃 http://paoloambrosio.net/2016/12/14/akka-location-transparency.html 및 관련 GitHub 데모 프로젝트 https://github.com/paoloambrosio/experiments/ 트리/akka-location-transparency. 해결 방법은 도커 이미지 부팅 중에 시드 호스트 이름을 검색하고 내보내는 것입니다. –