基于Ingress暴露服务
配置Ingress
英博云支持用户通过定义ingress的方式,暴露公网服务,每个用户集群的ingress需要符合一定的后缀可以在英博云控制台:集群->集群详情->概览,页面查看,具体如下:
若希望创建自定义ingress时,需要在自己集群的域名后缀的基础上,补充2-7位字符,以下为一个示例:
若ingress后缀为:
-tenant-61616664-helan-ingress-cn-huabei1.eks.ebcloud.com
则可以定义如下ingress
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: filebrowser-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: fb-tenant-61616664-helan-ingress-cn-huabei1.eks.ebcloud.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: filebrowser
port:
number: 9080 # 指向 Service 的 9080 端口
区分外网与内网Ingress
- 外网Ingress:域名会解析为公网IP,可以支持公网访问,不建议内网访问使用。
- 内网Ingress:域名会解析为内网IP,仅支持内网访问,公网访问不通。
问题排查
若是ingress无法访问,首先尝试用命令:kubectl describe ingress {ingress-name}
查看是否有报错,操作如下:
kubectl describe ingress filebrowser-ingress
Name: filebrowser-ingress
Labels: <none>
Namespace: default
Address:
Ingress Class: <none>
Default backend: <default>
Rules:
Host Path Backends
---- ---- --------
fb-tenant-39663739-llbhb1-ingress-cn-huabei1.eks.ebcloud.com
/ filebrowser:9080 (10.233.95.186:8080)
Annotations: nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning SyncError 16m (x753 over 8d) ingress-syncer Error syncing to host cluster: create object: admission webhook "ingresses.validating.ebtech.com" denied the request: Ingress filebrowser-ingress-x-default-x-tenant-61616664-helan validation failed: invalid host(s): [fb-tenant-39663739-llbhb1-ingress-cn-huabei1.eks.ebcloud.com]; each host must start with one of [*] and end with one of [-tenant-61616664-helan-ingress-cn-huabei1.eks.ebcloud.com, -tenant-61616664-helan-ingress-cn-huabei1-internal.eks.ebcloud.com], with a 2–8 lowercase-character core in between
这说明,ingress的域名格式不对,需要进行调整。
其次,可以尝试用nslookup查看域名的解析情况,确保域名正常解析后再访问,通常dns会有10s左右的延迟。
正常解析的示例如下:
% nslookup fb-tenant-61616664-helan-ingress-cn-huabei1.eks.ebcloud.com
Server: 130.117.180.66
Address: 130.117.180.66#53
Non-authoritative answer:
Name: fb-tenant-61616664-helan-ingress-cn-huabei1.eks.ebcloud.com
Address: 61.135.204.125