当前位置: 首页 > 知识库问答 >
问题:

Rancher:尽管L7入口工作,但L4平衡器仍处于挂起状态

吕霄
2023-03-14

使用具有2个节点的集群运行Rancher v 2.4.5。我尝试使用Bitnami的Helm Chart安装Wordpress。

一切进展顺利,我可以通过入口访问站点,除了图表创建的L4平衡器由于某种原因仍处于挂起状态。

> kubectl get svc -n wordpress -o wide
NAME                                       TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE     SELECTOR
ingress-d5bf098ee05c3bbaa0a93a2ceedd8d1a   ClusterIP      10.43.51.5      <none>        80/TCP                       15m     workloadID_ingress-d5bf098ee05c3bbaa0a93a2ceedd8d1a=true
wordpress                                  LoadBalancer   10.43.137.240   <pending>     80:31672/TCP,443:31400/TCP   5d22h   app.kubernetes.io/instance=wordpress,app.kubernetes.io/name=wordpress
wordpress-mariadb                          ClusterIP      10.43.7.73      <none>        3306/TCP                     5d22h   app=mariadb,component=master,release=wordpress

没有为wordpress服务分配负载平衡器入口:

> kubectl describe services wordpress -n wordpress
Name:                     wordpress
Namespace:                wordpress
Labels:                   app.kubernetes.io/instance=wordpress
                          app.kubernetes.io/managed-by=Tiller
                          app.kubernetes.io/name=wordpress
                          helm.sh/chart=wordpress-9.5.1
                          io.cattle.field/appId=wordpress
Annotations:              <none>
Selector:                 app.kubernetes.io/instance=wordpress,app.kubernetes.io/name=wordpress
Type:                     LoadBalancer
IP:                       10.43.137.240
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  31672/TCP
Endpoints:                10.42.1.16:8080
Port:                     https  443/TCP
TargetPort:               https/TCP
NodePort:                 https  31400/TCP
Endpoints:                10.42.1.16:8443
Session Affinity:         None
External Traffic Policy:  Cluster
Events
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    field.cattle.io/creatorId: user-6qmpk
    field.cattle.io/ingressState: '{"d29yZHByZXNzLWluZ3Jlc3Mvd29yZHByZXNzL3hpcC5pby8vLzgw":""}'
    field.cattle.io/publicEndpoints: '[{"addresses":["10.105.1.77"],"port":80,"protocol":"HTTP","serviceName":"wordpress:wordpress","ingressName":"wordpress:my","hostname":"my.wordpress.10.105.1.77.xip.io","path":"/","allNodes":true}]'
  creationTimestamp: "2020-09-01T19:32:27Z"
  generation: 3
  labels:
    cattle.io/creator: norman
  managedFields:
  - apiVersion: networking.k8s.io/v1beta1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:loadBalancer:
          f:ingress: {}
    manager: nginx-ingress-controller
    operation: Update
    time: "2020-09-01T19:32:27Z"
  - apiVersion: extensions/v1beta1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:field.cattle.io/creatorId: {}
          f:field.cattle.io/ingressState: {}
          f:field.cattle.io/publicEndpoints: {}
        f:labels:
          .: {}
          f:cattle.io/creator: {}
      f:spec:
        f:rules: {}
    manager: Go-http-client
    operation: Update
    time: "2020-09-01T19:49:08Z"
  name: my
  namespace: wordpress
  resourceVersion: "6073928"
  selfLink: /apis/extensions/v1beta1/namespaces/wordpress/ingresses/my
  uid: 8a88e16e-cbda-4f1f-bb1c-9d63d0af1b93
spec:
  rules:
  - host: my.wordpress.10.105.1.77.xip.io
    http:
      paths:
      - backend:
          serviceName: wordpress
          servicePort: 80
        path: /
        pathType: ImplementationSpecific
status:
  loadBalancer:
    ingress:
    - ip: 10.105.1.77
    - ip: 10.105.1.78

我已经在Bitnami github上发布了这个问题,但根据回复,这个问题出现在牧场主/RKE方面。

对此有什么想法吗?

附言

我应该同时为Rancher在裸机上运行L7入口和L4平衡器,还是L7入口也可以配置为负载平衡器并从该项目中删除L4平衡器?

共有1个答案

云令
2023-03-14

我通过清除防火墙、重新启动docker(因此它会获得新的防火墙)然后安装metallb(或您拥有的任何负载均衡器)来解决这个问题。如果您还没有L2负载均衡器,可以跳过此步骤,因为在我的情况下,问题是由负载均衡器的防火墙未注册引起的。

loadbalancer需要从metallb、您的cloudprovider、cloudflare或任何类似的地方获取IP。它是外部的,这意味着库伯内特斯本身不会提供它。

您需要使用提供IP的L2负载均衡器,如果没有,可以尝试https://metallb.universe.tf

您也可以离开它,您将永远无法获得外部IP,但nginx/traefik仍将路由流量,因为它找不到其他路由。。

 类似资料:
  • 是否可以让ingress nginx使用一个ELB同时为l4和l7提供服务?我假设它不是基于以下注释: 我希望有人告诉我我错了;)

  • 爬取某一部电影 于网上从学习 一步一步操作 没有出现代码错误 但还是出现 '任务已销毁,但仍处于挂起状态!' 在网上看了很多没有看到合适的解决方法 需要把所有的 任务下载完毕 而不是跳过该任务 源代码 出现的错误是

  • 我试图在GCE中的Kubernetes(服务器1.6.4)中部署一个grafana实例。我正在使用以下清单: 部署(完整版本): 服务: 入口: 结果表明,grafana的安检为302,而默认的GCE安检为200(来源)。如您所见,部署中有一个自定义readinessProbe(第22行)。 一旦我将这些资源发布到kube apiserver,就会创建出所有内容,不会出错。具体来说,入口获得公共i

  • 问题内容: 我是构建基于ADO.NET的网站的团队的一部分。有时我们有几个开发人员和一个自动化测试工具,它们同时在开发数据库的副本。 我们使用快照隔离级别,据我所知,它使用乐观并发性:它不是锁定,而是希望达到最佳状态,并且如果在受影响的行已在另一方更改期间尝试提交事务,则它会抛出异常交易。 要使用快照隔离级别,我们使用: 并在C#中: 请注意,IsolationLevel Snapshot与Rea

  • 我有一个关于Kubernetes环境的问题。我有K8s云,在我添加了一个持久卷分配给一个豆荚后,这个豆荚仍然处于“容器创建”状态。此PV已正确分配PVC。PVC与副本2一起位于两个外部GlusterFS服务器上。 你有什么想法可能是错的吗?我在哪里可以找到详细的日志?提前THX。 编辑:Gluster mount正确地安装在Master上,如果我手动添加任何文件,它将正确地复制到两个Gluster

  • 这是我在这里的第一个问题,所以如果我做错了什么,我提前道歉。 如你所知,不和谐最近实施了一些改变,这使得有必要激活特权网关意图,这样机器人就可以继续欢迎新成员并给他们角色。 我的机器人在一个服务器中,所以我同时授予它PRESENCE INTENT和SERVER MEMBERS INTENT。我的印象是,这应该足以让机器人重新开始正常工作,但可悲的是,它仍然不欢迎新成员,也没有给它自定义角色。其他一