我已经通过舵机安装了入口控制器作为守护进程。我已将入口配置如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: webapp-ingress
namespace: rcc
annotations:
haproxy.org/check: 'true'
haproxy.org/check-http: /serviceCheck
haproxy.org/check-interval: 5s
haproxy.org/cookie-persistence: SERVERID
haproxy.org/forwarded-for: 'true'
haproxy.org/load-balance: leastconn
kubernetes.io/ingress.class: haproxy
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: webapp-frontend
port:
number: 8080kubectl get ingress -n rcc
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
webapp-ingress <none> example.com 10.110.186.170 80 11h选择的类型是负载平衡器。我可以从任何节点上平80端口入口的ip地址,也可以把它卷得很好。我也可以浏览任何入口豆荚ip地址从节点很好。但是,当我浏览节点ip 80时,连接被拒绝。我在这里漏掉了什么?
发布于 2021-12-07 10:35:26
我安装了最后一个haproxy ingress,它是使用helm的0.13.4版本。
默认情况下,它与LoadBalancer服务类型一起安装:
$ kubectl get svc -n ingress-haproxy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
haproxy-ingress LoadBalancer 10.102.166.149 <pending> 80:30312/TCP,443:32524/TCP 3m45s因为我有相同的kubeadm集群,所以EXTERNAL-IP将挂起。正如您正确地提到的,在使用CLUSTER-IP设置集群时,可以在节点上访问kubeadm。
有两个选项可以访问您的入口:
NodePort从上面的输出来看,有一个NodePort 30312用于内部公开的端口80。因此,应该由Node_IP:NodePort从集群外部访问它。
curl NODE_IP:30312 -IH "Host: example.com"
HTTP/1.1 200 OKmetallb遵循安装指南,第二步是配置metallb。我用第二层。小心分配未使用的ip范围!
在安装和设置metallb之后,我的has现在拥有了EXTERNAL-IP:
$ kubectl get svc -n ingress-haproxy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
haproxy-ingress LoadBalancer 10.102.166.149 172.16.1.241 80:30312/TCP,443:32524/TCP 10m现在我可以通过EXTERNAL-IP通过端口80访问入口
curl 172.16.1.241 -IH "Host: example.com"
HTTP/1.1 200 OK有用的阅读:
https://stackoverflow.com/questions/70253417
复制相似问题