1.istio-ingressgateway 31380端口不通(安全组端口已开放)
telnet 31380不通(connection refuesed)
解决方法:
部署istio路由配置后自己就通了(刚安装完istio一个服务也没有,之后部署gateway+virtualService+destinationRule后即可访问31380端口)
参考:1.1.1 Connection Refused - Fresh Install #13057
2.domainName -> ingress_host:ingress_port映射
前方案(不知道谁整的架构)- 已弃用:
(1)在dnsPod(dns服务器)上将指定域名(特定或*pro.xxx.com形式)映射到华为云LB外网Ip;
(2)在LB上添加监听器监听80端口;
(3)后端服务器组进入master-01:80端口;
(4)进入master-01后通过自己搭建的nginx转到Istio ingress_host:ingress_port;
也就是所有外部流量经由Dns服务器后被转发到华为云入口(LB 80端口),之后通过LB将外网流量引入到集群内部节点,而在该集群内部节点通过nginx将流量再次转发到istio-ingressgateway(ingress_host:ingress_port);
目前方案:
(1)在dnsPod(dns服务器)上将指定域名(特定或*pro.xxx.com形式)映射到华为云LB外网Ip;
(2)在LB上添加监听器监听80端口;
(3)后端服务器组直接指向Istio ingress_host:ingress_port;
优化后的方案就是直接通过LB将流量指向Istio ingress_host:ingress_port,不经过Nginx转发
(不知道以前为什么要经过Nginx);
3.客户端报426
426 Upgrade Required
由于在解决第2个问题端口映射时采用了nginx方案,故导致了客户端收到Server: nginx/1.6.2返回的429(如下图);
解决方法:
nginx反向代理默认走的http 1.0版本,但是被反向代理的服务器(具体tomcat应用)是1.1版本的,
所以在反向代理的时候加上如下设置即可:
location / {
proxy_http_version 1.1;
proxy_pass http://192.168.6..115:31380;
}
4.前端容器nginx转发服务报503
前端容器中配置了个nginx,会将该前端容器中/dspt_service转发到集群内部服务,例如转发到dspt-service.tsp,配置如下:
upstream my-gateway {
server dspt-service.tsp weight=5;
}server {
listen 80;
server_name xxx.yyy.com;
#前台页面
location / {
alias /usr/share/nginx/mx-web/;
index login.html;
}#后台服务
location /dspt_service {
proxy_pass http://my-gateway;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_valid all 1m;
proxy_http_version 1.1;
}
}
例如在浏览器中通过xxx.yyy.com访问到前端容器中的登录页面login.html,在浏览器中通过xxx.yyy.com/dspt_service即可访问到集群内的dspt-service.tsp服务,之前在K8s环境下以上配置没有问题,但是切到Istio后,再在浏览器中访问xxx.yyy.com/dspt_service则报503(Service Unavalible),由此猜想到应该是http请求头Host有问题(请求头Host可以用来解析虚拟主机概念中的具体服务),将请求头Host修改为相应服务的请求域名即可,即将上面的Host修改为具体服务的域名dspt-service.tsp,修改后如下:
upstream my-gateway {
server dspt-service.tsp weight=5;
}server {
listen 80;
server_name xxx.yyy.com;
#前台页面
location / {
alias /usr/share/nginx/mx-web/;
index login.html;
}#后台服务
location /dspt_service {
proxy_pass http://my-gateway;
proxy_set_header Host dspt-service.tsp;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_valid all 1m;
proxy_http_version 1.1;
}
}