Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes-nginx angularjs POD动态访问集群内的nodejs restapi url(另一个POD)_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

Kubernetes-nginx angularjs POD动态访问集群内的nodejs restapi url(另一个POD)

Kubernetes-nginx angularjs POD动态访问集群内的nodejs restapi url(另一个POD),kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,使用Kubernetes--Gogle容器引擎设置,在同一个google云集群中,我拥有前端服务->nginx+Angular JS和REST API服务-->NodeJS API。我不想公开NodeJS API KubeCTL服务公共域。因此,“ServiceType”仅设置为“ClusterIP”。我们如何在AngularJS程序中推断出这个节点(API)服务(主机),节点(API)服务(端口)--{SVCNAME}(服务)主机和{SVCNAME}(服务)端口 (function() {

使用Kubernetes--Gogle容器引擎设置,在同一个google云集群中,我拥有前端服务->nginx+Angular JS和REST API服务-->NodeJS API。我不想公开NodeJS API KubeCTL服务公共域。因此,“ServiceType”仅设置为“ClusterIP”。我们如何在AngularJS程序中推断出这个节点(API)服务(主机),节点(API)服务(端口)--{SVCNAME}(服务)主机和{SVCNAME}(服务)端口

 (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停止/启动控件

FROM nginx
COPY public/angular-folder /usr/share/nginx/html/projectSubDomainName
第43页,共62页,解释了我们可以调用命令sh吗

 "containers": {
     {
      "name":"container-name",
      "command": {
        "sh" , "sudo nginx Command-line parameters
    'https://$NODE_API_SERVICE_HOST:$NODE_API_SERVICE_PORT/node/api/v1'"
 }
 }
 }
这对吊舱重启来说是可持续的吗?如果是这样,我如何在AngularJS中获得这个变量

那么这将不起作用(ReferenceError:process未定义),因为这些angularjs代码是在客户端执行的

如果客户机在集群之外,那么它能够访问NodeJSAPI的唯一方法就是将其暴露到客户机的网络(可能是公共internet)中。如果您担心这会带来安全隐患,那么有许多不同的方法来验证服务,例如使用

这对吊舱重启来说是可持续的吗?如果是这样,我如何在AngularJS中获得这个变量


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

Ok。对于生产,我将公开安全的NodeJS服务,因为NODE_API_服务{HOST,PORT}公共IP是稳定的,我们正在考虑使用以下格式。但对于开发实例,我将使nginx容器和nodejs容器都属于同一集群。我还应该公开NodeJS服务吗?还有其他选择吗?
"containers": {
   {
    "name":"container-name",
    "command": {
      "sh" , "sudo nginx Command-line parameters
   'https://$NODE_API_SERVICE_HOST:$NODE_API_SERVICE_PORT/node/api/v1'"
 }
 }
 }