首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haproxy入口控制器

Haproxy入口控制器
EN

Stack Overflow用户
提问于 2021-12-07 00:02:21
回答 1查看 922关注 0票数 2

我已经通过舵机安装了入口控制器作为守护进程。我已将入口配置如下:

代码语言:javascript
复制
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: 8080
代码语言:javascript
复制
kubectl 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时,连接被拒绝。我在这里漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-07 10:35:26

我安装了最后一个haproxy ingress,它是使用helm的0.13.4版本。

默认情况下,它与LoadBalancer服务类型一起安装:

代码语言:javascript
复制
$ 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

有两个选项可以访问您的入口:

  1. 使用NodePort

从上面的输出来看,有一个NodePort 30312用于内部公开的端口80。因此,应该由Node_IP:NodePort从集群外部访问它。

代码语言:javascript
复制
curl NODE_IP:30312 -IH "Host: example.com"
HTTP/1.1 200 OK
  1. 设置metallb

遵循安装指南,第二步是配置metallb。我用第二层。小心分配未使用的ip范围!

在安装和设置metallb之后,我的has现在拥有了EXTERNAL-IP

代码语言:javascript
复制
$ 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访问入口

代码语言:javascript
复制
curl 172.16.1.241 -IH "Host: example.com"
HTTP/1.1 200 OK

有用的阅读:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70253417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档