我正在尝试将应用程序部署到Google Cloud Platform . 我有我的后端和我的前端运行在单独的docker容器中,每个项目都有自己的Docker-Compose和Dockerfile,我正在为Postgres数据库使用一个容器 . 我将容器部署到Dockerhub,并创建了Kubernetes服务和部署 . (使用Kubernetes Kompose:所以我先将docker-compose转换为deployments.yaml文件)
现在我想将我的应用程序部署到Google Cloud Platform
-
我创建了一个集群
-
我为我的前端和后端创建了两个单独的部署
kubectl run backendapp --image=docker.io/[dockerhub username]/backendapp --port=9000
kubectl run frontendapp --image=docker.io/[dockerhub username]/frontendapp --port=3000
当我通过外部IP地址访问我的前端时,它似乎工作(有一个接口),并且不可能通过外部IP到达我的后端 .
所以我的问题是:
-
运行我的Kubernetes服务并将我的应用程序停靠以便将其部署到Google Cloud Platform后,要遵循哪些正确的步骤?
-
一旦部署后如何链接我的前端和后端服务?
-
我是否应该在Google Cloud Platform中为我的数据库创建部署?
这是我的后端服务的描述
> Name: backendapp Namespace: default
> Labels: run=backendapp Annotations:
> <none> Selector: run=backendapp Type:
> LoadBalancer IP: 10.111.73.214 Port:
> <unset> 9000/TCP TargetPort: 9000/TCP NodePort:
> <unset> 32449/TCP Endpoints: Session Affinity:
> None External Traffic Policy: Cluster Events:
> <none>
这是我的前端服务的描述
Name: frontendapp
Namespace: default
Labels: run=frontendapp
Annotations: <none>
Selector: run=frontendapp
Type: LoadBalancer
IP: 10.110.133.172
Port: <unset> 3000/TCP
TargetPort: 3000/TCP
NodePort: <unset> 30016/TCP
Endpoints:
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
我可以通过访问我的前端服务
clusterIp:Nodeport但我无法使用后端
1 回答
在GCP中创建集群后,您需要为前端和后端应用程序创建部署和服务 . 您可以阅读GKE文档以了解如何创建Deployment和Services
Kubernetes中的POD使用服务进行通信,他们还使用服务将自己暴露给外部世界 . 在GCP中,您可以使用LoadBalancer来共享HTTP / HTTPS流量和TCP流量 . 有关它的更多信息,您可以查看Codelab Kubernetes, GKE, and Load Balancing示例 .
如果要在Kubernetes中找到数据库,则需要为其添加部署和服务 . 如果不这样做,则需要配置从应用程序到Kubernetes外部数据库的访问 .