当前位置: 首页 > 知识库问答 >
问题:

通过docker、kubernetes和google云平台部署应用程序的步骤

江新
2023-03-14

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

现在我想把我的应用程序部署到Google云平台

>

  • 我创建了一个群集

    我为前端和后端创建了两个单独的部署

    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云平台上之后,应该遵循哪些正确的步骤?
    • 部署后如何链接前端和后端服务?
    • 是否也应该在Google云平台中为数据库创建部署?

    这是我的后端服务的描述

    > 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个答案

    饶谦
    2023-03-14

    在运行我的Kubernetes服务并将我的应用程序停靠在Google云平台上之后,应该遵循哪些正确的步骤?

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

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

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

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

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

     类似资料:
    • 如果这个问题听起来很明显,我很抱歉,但Kubernetes和Google云文档在某些地方非常混乱和矛盾。 无论如何,我已经将一个Dockerized web服务器推送到我的私人Google容器注册表中。如果这个容器死了,我想让它重新启动,但是在任何给定的时刻,我只需要运行一个实例。此外,为了正确配置服务器,还需要定义一些环境变量。 我已经创建了一个新集群。但是我该何去何从呢?一些教程说应该声明 p

    • 我的应用程序服务无法相互通信。我拥有的是一个由身份验证服务、发现服务器、api网关和商家服务组成的应用程序。我使用eureka服务器和客户端依赖关系进行服务发现。每个服务都用docker进行容器化,我使用K8进行编排。 当我向服务器发送请求时,我得到的响应是: 以下是我的尤里卡属性和K8配置文件: 发现服务器文件 身份验证服务application.properties文件 商户服务 API 网关

    • 注:详细布署请参考:BeX5安装布署 该文章主要介绍BeX5平台开发完成后,资源部署至正式环境的过程。 一、 获取BeX5企业快速开发平台版本,版本自带有tomcat服务和mysql数据库。 二、 将BeX5版本解压至服务器的相应目录,生成key文件,申请注册码,进行注册。(注意:平台不能放在有中文的目录下) 三、 BeX5版本数据源默认包含:system 、doc和demo。根据系统情况配置数据

    • 我遵循了GKE教程,使用beta Inrit类型创建HTTP负载均衡器,并且在使用nginx映像时工作正常。我的问题是为什么Inrit是必要的。 我可以创建一个容器引擎集群,然后创建一个使用库伯内特斯创建的实例组作为服务后端的HTTP负载均衡器,并且一切似乎都运行良好。当仅在部分流程中使用库伯内特斯似乎运行良好时,为什么我要经历使用Inete的所有麻烦?

    • 本文向大家介绍教你在heroku云平台上部署Node.js应用,包括了教你在heroku云平台上部署Node.js应用的使用技巧和注意事项,需要的朋友参考一下 虽然AWS现在也推出了自己的PaaS平台,叫Elastic Beanstalk,但heroku的优势在于它上面有很多第三方的add-on,比如MongoDB,mysql, redis, memcached, 还有各种消息队列、sms和邮件、

    • 我不知道我应该从哪里开始,因为我必须通过安装4j安装程序在JBoss上部署一个网络应用程序。 我已经创建了动态Web应用程序,我想在JBoss上部署这个应用程序,但是部署一个war文件并在客户端机器上配置JBoss不是一个好主意,因此我想创建一个安装程序文件(. exe)文件,它将处理以下事情: > 在客户机上安装JBoss服务器 在JBoss服务器上部署我的应用程序 所以我只需要把安装程序文件给