我创建了一个GKE集群和部署了两个基本的Node.js应用在它命名nodeservice1和nodeservice2只有nodeservice1是开放的世界(允许未经身份验证的呼叫= TRUE)。
我nodeservice1通过restcall内部调用nodeservice2和返回什么nodeservice2回报。
我能够通过curl命令来调用nodeservice1,它工作正常。 当我打端点../restcall
(实际上调用nodeservice2内部),它不返回任何东西,但HTTPS 200 OK
。
注:这两个应用都是在“云上运行”。 上面的设置
任何帮助吗? TIA
我试图打从nodeservice1以下URL。 试图curl命令太:卷曲-v -H “主持人:nodeservice1.istio-system.example.com” 34.80.18.249/restcall其中34.80.18.249是我istio进入负载平衡器IP。
- HTTP://nodeservice2.istio-system:8080 / restcall
- HTTP:// nodeservice2:8080 / restcall
/ restcall内部nodeservice2调用
当我检查正在运行的服务,我nodeservice1和nodeservice2有型= ExternalName。 但我已经暴露nodeservice1 =负载均衡和Nodeservice2 = ClusterIP。 是我丢失的东西?
Nodeservice1的server.js文件:
var express = require("express");
var http = require('http');
var app = express();
app.get('/',function(req, res, next){
res.send('Hurrah !!! nodeservice1 is up and running !!!');
});
app.get('/restcall',function(req, res, next){
var data = '';
console.log('inside /restcall in nodeservice1');
http.get('http://nodeservice1.default.example.com:8080/restcall',(resp) =>{
console.log('inside response');
resp.on('data', function (chunk) {
data += chunk;
console.log('inside end restcall');
});
resp.on('end', () => {
res.send(data);
console.log('inside end restcall');
console.log(data);
})
})
})
app.listen('8080',function(){
console.log('Node service 2 server listening on port 8080');
});
Nodeservice2的server.js
var express = require("express");
var http = require('http');
var app = express();
app.get('/',function(req, res){
res.send('Hurrah !!! nodeservice2 is up and running !!!');
});
app.get('/restcall',function(req, res, next){
console.log('inside /restcall in nodeservice2');
res.send('restcall api successfull from nodeservice2 !!!');
});
app.listen('8080',function(){
console.log('Node service 2 server listening on port 8080');
});