그래서 내 백엔드와 프런트 엔드가 하나의 컨테이너로 분리되어 있습니다. Kubernetes Deployment.Kubernetes에서 2 개의 다른 DNS 이름을 실행하기 위해 2 개의 컨테이너를 어떻게 설정할 수 있습니까?
현재로서는 다른 포트을 통해 프런트 엔드 & 백엔드에 액세스해야합니다.
예 example.com:5000 = frontend
& example.com:7000 = backend
내가 내 프런트 엔드 컨테이너 내가 GCP를 사용하고 api.example.com
에서 실행 www.example.com
& 내 백엔드 컨테이너에서 실행하는 방법을 내가 설정 할 수 있습니다 궁금하네요 (구글 클라우드) , 내 DNS를 올바르게 설정했는지 확인하십시오. & 각 포트에 할당 된 포트 (5000 = frontend, 7000 = backend)를 사용하여 서비스 (웹 응용 프로그램)에 액세스해야합니다.
나는 가능한 해결책을 수동으로 생각하고 있지만, 무언가가 내장되어 있는지 궁금해하고있다. Kubernetes.
내가 설정 포트 80에서 실행됩니다 내는 Kubernetes 클러스터의 nginx를 컨테이너 거라고, 그래서 해당 포트로 리디렉션 될 것이다 통해 오는 모든 요청은 :이 솔루션은 것
예 : 나는 api.example.com point to <my_cluster_ip>/backend
을 가질 수 & 내 프론트 엔드 <my_cluster_ip>/frontend
에 대해 동일한 및하자 포트의 nginx 포인트/백엔드 5000 및/프론트 엔드 포트 에 7000
내가 사용할 수는 Kubernetes에 내장 된 뭔가가 있겠죠? 다음은 내 배포 구성입니다.
{
"apiVersion": "extensions/v1beta1",
"kind": "Deployment",
"metadata": {
"name": "my_container"
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"labels": {
"app": "my_app"
}
},
"spec": {
"containers": [
{
"name": "backend",
"image": "backend_url",
"ports": [
{
"containerPort": 7000
}
],
"imagePullPolicy": "Always",
"env": [
{
"name": "NODE_PORT",
"value": "7000"
},
{
"name": "NODE_ENV",
"value": "production"
}
]
},
{
"name": "frontend",
"image": "frontend_url",
"ports": [
{
"containerPort": 5000
}
],
"imagePullPolicy": "Always",
"env": [
{
"name": "PORT",
"value": "5000"
},
{
"name": "NODE_ENV",
"value": "production"
}
]
}
]
}
}
}
}
예이 솔루션은 현재 사용중인 것보다 낫습니다. 나는 처음에는 이런 식으로 할 것이지만, 나는 단지 kubernetes로 시작 했으므로 아기 단계를 취하고 싶었다! – James111
1 질문 : 백엔드와 프론트 엔드가 서로 다른 두 가지 서비스에 있다고 가정하면 '클러스터 IP'를 통해 백엔드를 호출하겠습니까? (로컬 인 것처럼 빠르지 않습니까?) 또는 '호스트 이름'(예 :'api.example.com')? – James111
당신은 클러스터 IP로 그것을 호출 할 수 있지만, kubernetes가 kube-dns에 의해 상자 밖으로 제공되는 경우에는 약간의 발견이 필요합니다. 실제로 DNS로 연결해야합니다. 동일한 네임 스페이스에서 배포/서비스를 모두 실행하는 경우 'backend'와 같은 이름으로 서비스를 호출하거나 'backend.default.svc.cluster.local'과 같은 FQDN으로 서비스를 호출하면 충분합니다 ('default' 네임 스페이스에있는 경우).). 이러한 도메인 이름은 대부분의 경우 동일하지만 ClusterIP로 해결되지만 명시 적으로 서비스를 제거하고 다시 작성하면 변경할 수 있습니다. –