首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes - nginx angularjs POD动态访问集群中的nodejs REST API url (另一个POD)

Kubernetes - nginx angularjs POD动态访问集群中的nodejs REST API url (另一个POD)
EN

Stack Overflow用户
提问于 2015-11-18 15:27:41
回答 1查看 1.1K关注 0票数 1

使用Kubernetes --安装程序,在同一个google集群中,我拥有前端服务-> nginx +角JS和REST服务-> NodeJS API。我不想公开NodeJS API KubeCTL服务公共域。因此,“ServiceType”只设置为“ClusterIP”。我们如何推断这个NODE_API_SERIVCE_HOST,NODE_API_SERIVCE_PORT - {SVCNAME}_SERVICE_HOST和{SVCNAME}_SERVICE_PORT -在AngularJS程序中。

代码语言:javascript
复制
 (function() {
'use strict';

angular
    .module('mymodule', [])
    .config(["RestangularProvider", function(RestangularProvider) {
      var apiDomainHost = process.env.NODE_API_SERVICE_HOST;
      var apiDomainPort = process.env.NODE_API_SERVICE_PORT;
      RestangularProvider.setBaseUrl('https://'+apiDomainHost+':'+apiDomainPort+'/node/api/v1');        }]);
 })();

然后这将无法工作( ReferenceError: process未定义),因为这些angularjs代码是在客户端执行的。

我的docker文件很容易继承nginx停止/启动控件。

代码语言:javascript
复制
FROM nginx
COPY public/angular-folder /usr/share/nginx/html/projectSubDomainName

http://www.slideshare.net/carlossg/scaling-docker-with-kubernetes中62页中的第43页解释了我们可以调用命令sh吗?

代码语言:javascript
复制
 "containers": {
     {
      "name":"container-name",
      "command": {
        "sh" , "sudo nginx Command-line parameters
    'https://$NODE_API_SERVICE_HOST:$NODE_API_SERVICE_PORT/node/api/v1'"
 }
 }
 }

这是可持续的船舱重新启动吗?如果是这样的话,我如何在AngularJS中获得这个变量?

EN

回答 1

Stack Overflow用户

发布于 2015-11-18 18:36:37

然后这将无法工作( ReferenceError: process未定义),因为这些angularjs代码是在客户端执行的。

如果客户端在集群之外,它能够访问NodeJS API的唯一方法是将它公开给客户端的网络(可能是公共internet )。如果您担心这对安全性的影响,可以使用多种不同的方法来验证服务,例如使用基础知识

“容器”:{“名称”:“容器名称”,“命令”:{ "sh“,"sudo命令行参数'端口/节点/api/v1‘”}} 这是可持续的船舱重新启动吗?如果是这样的话,我如何在AngularJS中获得这个变量?

是的,服务IP和端口是稳定的,即使跨荚重新启动。至于如何将NODE_API_SERVICE_{HOST,PORT}变量传递给客户端,您需要将它们从运行服务器端的进程(在集群中)注入响应(例如直接注入JS代码或JSON响应)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33784004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档