注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

SLB及流量接入常见问题

更新时间:2022/01/18 访问次数:1104

1.为什么SLB流量接入找不到负载均衡?

请确认几个事情:

1. 所购买的SLB所属VPC和容器集群所属VPC是否相同(容器集群所属VPC在“运维中心”可以看到)。

2. 环境是否选择正确。通常环境会关联容器集群,正式环境和测试环境的集群不同,会影响到所属VPC,进而影响SLB的选择。

3. 确认内外网类型是否选择正确。内网访问只能选择购买的私网SLB,外网访问对应选择外网SLB。

  1. 不能使用集群自身使用的SLB。集群创建时会默认创建一个内网SLB(名称格式为ManagedK8SSlb**),这个是给集群自身使用的,做流量接入需要另行购买。https://www.yuque.com/fczggw/wu7u0k/ahlxvs



2.创建好了SLB接入,但是无法访问是什么原因?

1)检查RS端口是否正常,即容器的监听端口,比如tomcat springboot在8080端口监听

远程登录到云应用容器,curl localhost:容器启动端口/xxx,测试容器本身是否可以访问;

如果容器无法访问,请自行排查应用问题


2)检查SLB的环境类型,比如在测试环境做的SLB接入,但是容器实际部署启动在正式环境


3.SLB无法访问,监听状态健康检查失败 

平台上做的SLB流量接入,是不需要自己手动配置监听的,如果SLB无法访问,则优先排查容器问题。

1.相应的环境是否存在容器,“环境管理”

2.容器的健康状态,“环境管理->管理资源”

3.容器是否在流量接入时配置的RS端口正常监听,“环境管理->管理资源->远程登录”进入容器内

4.确认下做流量接入时选择的环境是否正确,比如容器实例部署在测试环境,做接入的时候选的是正式环境,而正式环境没有容器,自然无法访问。


特别说明,SLB的监听端口是你访问slb的端口,RS端口是容器实际启动的端口(比如一个tomcat应用在8080端口监听)。做了SLB流量接入后,访问slb的监听端口,会自动负载到容器实际启动的端口。

image.png监听端口可以自己设置,比如这里 访问SLB IP+8082就行了,但是RS端口一定要看容器启动在哪个端口。SLB访问不通,很可能是容器访问不通,即没有在RS端口启动



4.外网访问https正常,集群内访问https时报异常?

1)如果域名解析的address ip是slb接入的ip,或者是集群服务的cluster ip,那么目前是无法在集群内通过https访问的,建议走http;(原因是k8s社区的一个已知问题导致的,目前暂时无法解决,想详了解的可以参考:https://github.com/kubernetes/kubernetes/issues/66607


5. 内网SLB接入负载不均衡或无法访问

由于kubernetes的网络规则限定等原因,如果在集群内访问内网SLB接入,会出现负载不均衡或有时能访问有时又无法访问的问题,因此,对于内网访问的需求,建议通过“集群服务”或Ingress来访问;

“集群服务”参见:https://www.yuque.com/fczggw/wu7u0k/nryisy

“Ingress”参见:https://www.yuque.com/fczggw/wu7u0k/il7qkm



Ingress常见问题

- 选择不了ingress Class?

1、如果是首次使用,请检查下ingress contrller的发布单是否完成,如果处于"暂停"状态,请继续完成发布后即可

2、如果非首次使用,但是更换了集群;请重新发布ingress controller


- 选择不了服务名称?

创建Ingress路由时(已在业务应用创建了集群服务),但选择不了服务名称;

1、要确保服务和ingress controller在同一个集群。比如都在正式环境集群 或 测试环境集群,否则这里看不到服务

2、如果更换了集群,请重新发布ingress controller 和 重新保存集群服务

?

其他

- 小程序访问超时或其他不可访问问题

首先,确定下是不是云应用访问超时

1)远程登录到云应用容器,curl localhost:容器启动端口/xxx,测试容器本身是否可以访问;

如果容器无法访问,请自行排查应用问题

2)容器内curl slb的ip:slb监听端口/xxx,测试流量接入的slb是否可以正常访问;

如果slb流量接入无法访问,请参考此文档中的问题2、问题3进行排查


如果云应用slb访问没有问题,则不是云应用问题,请提小程序工单

FAQ

关于此文档暂时还没有FAQ
返回
顶部