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