【问题标题】:Steps to deploy an application passing by docker, kubernetes and google cloud platform通过docker、kubernetes和google云平台部署应用的步骤
【发布时间】:2018-06-13 14:33:35
【问题描述】:

我正在尝试将应用程序部署到 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 服务后要遵循的正确步骤是什么? 将我的应用程序 docker 化以将其部署到 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:节点端口 但我无法在后端这样做

【问题讨论】:

    标签: docker kubernetes google-cloud-platform docker-compose


    【解决方案1】:

    运行我的 Kubernetes 后要遵循的正确步骤是什么 服务和 dockerizing 我的应用程序以便将其部署在 谷歌云平台?

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

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

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

    我是否也应该在 Google Cloud 中为我的数据库创建部署 平台?

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

    【讨论】:

    • 非常感谢您的回复,我为应用程序前端 (iroolclient) 和后端 (iroolapp) 创建了服务和部署,但我不断收到外部 IP 的
    • @Lana.G 你能分享更多信息吗?例如,您的服务和部署的配置、它们的状态和日志?
    • @Lana.G 我们还需要更多细节,你是如何尝试到达前端和后端的?您使用什么来向外部世界公开服务、负载均衡器或公开节点?
    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多