首页 > 解决方案 > 通过docker、kubernetes和google云平台部署应用的步骤

问题描述

我正在尝试将应用程序部署到 Google Cloud Platform。我的后端和前端在单独的 docker 容器中运行,每个项目都有自己的 Docker-Compose 和 Dockerfile ,我正在为我的 Postgres 数据库使用容器。我将容器部署到 Dockerhub,并创建了 Kubernetes 服务和部署。(使用 Kubernetes Kompose:所以我首先将 docker-compose 转换为 deployments.yaml 文件)

现在我想将我的应用程序部署到 Google Cloud Platform

当我通过外部 IP 地址访问我的前端时,它似乎工作(有一个接口)并且无法通过外部 IP 访问我的后端。

所以我的问题是:

这是我的后端服务的描述

> 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 但我无法在后端这样做

标签: dockerkubernetesgoogle-cloud-platformdocker-compose

解决方案


在运行我的 Kubernetes 服务并将我的应用程序 docker 化以便在 Google Cloud Platform 上部署它之后,应遵循哪些正确步骤?

在 GCP 中创建集群后,您需要为前端和后端应用程序创建部署和服务。您可以阅读 GKE 文档以了解如何创建部署服务

部署后如何链接我的前端和后端服务?

Kubernetes 中的 POD 使用服务进行通信,它们也使用服务将自己暴露给外部世界。在 GCP 中,您可以使用 LoadBalancer 来共享 HTTP/HTTPS 流量和 TCP 流量。有关它的更多信息,您可以查看 Codelab Kubernetes、GKE 和负载平衡示例。

我也应该在 Google Cloud Platform 中为我的数据库创建部署吗?

如果要在 Kubernetes 中定位数据库,则需要为其添加部署和服务。如果不这样做,则需要配置从应用程序到 Kubernetes 外部数据库的访问权限。


推荐阅读