Редактировать : Я работаю над проектом, который развертывает на GKE несколько проектов в день на 100% автоматически. Наш проект разработан в nodejs, здесь псевдокод:
projects = get_all_projects_today() // returns 15 projects for today (for example)
for project in projects
deploy_to_GKE(project) //generate a deployment manifest for project and post it to GKE (using api call)
public_ip = create_service_on_GKE(project, type=Loadbalancer) //generate a service manifest (type loadbalancer) for project, post it to GKE (using api call) and returns the public created ip address
get_domain_from_ip(public_ip) //how to do this !
развернутые проекты должны быть доступны через доменные имена, а не ip, например, так:
appx.mysite.com, or
mysite.com/appx
Конец редактирования
Вот пример манифеста службы, который я использую:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "backend-__ID__"
},
"spec": {
"selector": {
"app": "backend-__ID__"
},
"type": "LoadBalancer",
"ports": [
{
"name": "app1",
"protocol": "TCP",
"port": 8080,
"targetPort": "8080"
},
{
"name": "app2",
"protocol": "TCP",
"port": "3010",
"targetPort": "3010"
}
]
}
}
, который дает мне этот результат в облаке Google:
Единственный способ получить доступ к проекту извне - это использовать IP-адрес (конечная точка), но это блокирует использование куки (мы не можем устанавливать куки на ip, нам нужно использовать доменное имя).
Так есть ли способ автоматически получить из именованных доменов GKE конечных точек для доступа к проекту извне?
Я пытался использовать обратный поиск DNS, чтобы получить имя домена для внешнего ip, но этоне сработало: (
Спасибо