问题标签 [metallb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - 我无法使用 Nginx 从外部 Kubernetes 集群访问
我有一个内部部署有 kubernetes (k8s) v.1.16 的集群。我已经安装了 MetalLB (v.0.9.3) 和 Nginx (v.1.9.1)。MetalLB 正确设置了 ingress-nginx 外部 IP。然后我部署了以下茶和咖啡服务示例:
https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example
当我从集群内部执行 --curl 测试应用程序时:
它有效,我得到以下响应:
问题是我无法从集群外部访问。我尝试使用https://cafe.example.como/coffee和https://xxx.xxx.xxx.xx/coffee从 Google Chrome 浏览器得到以下响应:
有什么建议为什么我无法从集群外部访问?
非常感谢。
问候。
nginx - Kubernetes Baremetal 集群中的 MetalLB
我是 Kubernetes 新手,正试图通过入口资源公开我的服务(Nginx)。入口控制器已经通过 helm nginx-stable/nginx-ingress 安装。尝试从入口资源访问所述 IP 和端口时。这是无法访问的,通过进行一些研究,我发现我需要安装 metalLB。
我的问题是我真的需要安装 MetalLB 还是有任何替代的内置资源可以配置或用于路由流量?
networking - 如何正确启用和连接用于 Kubespray 的 MetalLB 插件?
我正在尝试使用 Kubespray 让我的集群运行起来,我不得不说它是一个很棒的工具,但我无法让它完全正确地为我工作。具体来说,我正在尝试启用 metalLB 插件,但它似乎不起作用。
在我自己的尝试失败后,我从 kubespray 拉取请求中退回到测试步骤,该请求将 metalLB 添加为插件,但这仍然失败。
指出我的实际步骤。
vagrant destroy
(处理我的最后一次尝试)- 更改
/inventory/mycluster/group_vars/k8s-cluster/addons.yml
以启用 MetalLB,版本 0.9.3,第 2 层,ip 范围192.168.1.201-192.168.1.250
- 变更
/inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml
集kube_network_plugin: flannel
,kube_proxy_strict_arp: true
和kubeconfig_localhost: true
- 跑
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml --private-key=~/.ssh/id_rsa
vagrant up
kubectl apply -f testlb.yaml (apply the test service from the pull request test)
my-service 的 external-ip 仍然挂起,因为它无法解析。似乎没有 metallb 组件正在运行。在执行过程中,很多文字飞速掠过,但我没有看到任何 metallb 特定的消息。
我的计划是使用集群来玩、学习和开发,最好是使用 jenkins-x。它不打算用作生产集群或供公众访问。
我的网络很简单,宽带集线器/路由器/防火墙位于 192.168.0.1。该路由器在 192.168.0.* 范围内分配网络地址
我的 Kubespray 集群在四核 ubuntu 机器上的 virtualbox 中运行 3 个节点。
为什么外部 IP 仍处于待处理状态,我该如何解决?
kubectl - Ingress DNS 在容器外不起作用
我在 VMware 的 k8s 集群中部署了一个入口。问题是 DNS 在容器内响应:
但是,如果我从集群中尝试:
即使我使用 DNS 而不是 localhost 或 metallb 分配给入口控制器的 IP,它也不起作用。
如果我 curl 由 metallb 分配的外部 ip: 10.133.2.21
所以,这意味着 nginx 以某种方式工作,但如果我尝试 curl 10.133.2.21/banana 或 10.133.2.21/apple 它不起作用。
有任何想法吗?
kubernetes - Microk8s + metallb + ingress
我对 kubernetes 很陌生,我试图在带有 CentOS 的 VPS 上建立一个 microk8s 测试环境。
我做了什么:
我设置了集群,启用了入口和 metallb
暴露了入口控制器服务:
暴露一个 nginx 部署来测试入口
这是我的集群的状态:
看起来 Metallb 可以正常工作,因为入口服务从我指定的池中收到了一个 ip。现在,当我尝试部署入口以到达 nginx 部署时,我没有得到地址:
非常感谢您的帮助。谢谢!
nginx - Nginx 报“上游连接超时”
说明: k8s nginx-ingress-controllers 暴露在负载均衡器类型(由metallb 实现)中,ip addr 为192.168.1.254。另一个 nginx 集群在 k8s 集群前面,它只有一个上游,即 192.168.1.254(lb ip addr)。请求流路由:client -> nginx clusters -> nginx-ingress-controllers-> services。
问题:有时 nginx 集群报告非常小的“上游(192.168.1.254)超时”,最后客户端从 nginx 得到 504 超时。
但是当我放弃 nginx 集群并将请求流切换到:客户端-> nginx-ingress-controllers-> 服务时。一切顺利,客户端不再出现 504 超时。我确定 nginx 集群和 nginx 入口之间的网络控制器运行良好。
大多数请求可以由 nginx 集群处理并返回状态 200。我不知道为什么很少有请求报告“上游超时”并返回状态 504。
kubernetes - 为什么 Kubernetes pod CPU 使用率在节点(DaemonSets)之间会有很大差异?
前言:我是一个 Kubernetes 新手,在家里自建集群,我有 1 个 master 和 3 个 worker 节点。
我正在努力确定为什么我的一些由 DaemonSets 管理的 pod 使用的 CPU 比其他节点上的对应物更多。
以下是结果的摘录kubectl top pod --all-namespaces
:
NAMESPACE NAME CPU(cores) 节点
kube-system coredns-p7xkg 20m Master
kube-system coredns-ztwnn 66m Worker 1
kube-system coredns-2n44b 68m Worker 2
kube-system coredns-smhnb 15m Worker 3
kube-system kube-flannel-ds -j4f6l 9m Master
kube-system kube-flannel-ds-fwwqg 67m Worker 1
kube-system kube-flannel-ds-sm7g6 44m Worker 2
kube-system kube-flannel-ds-qk9vq 11m Worker 3
metallb-system speaker-lfp8n 22m Master
metallb-system speaker-6plw9 100m Worker 1
metallb-system speaker-gt4fm 99m Worker 2
metallb-system speaker-bntfk 27m Worker 3
正如您在上面看到的,在 3 个不同的 DaemonSet 中,worker 1 和 2 存在问题。
主特性:controller manager、api server、dashboard 和 metrics scraper、metallb controller,除上述 DaemonSet pods Worker #1 特性:上述 + kube proxy Worker #2 特性:mariadb、metrics server、elastic quickstart es/kb/ operator Worker #3 功能:phpmyadmin、gitea、splunk、nexus
我怀疑可能存在一些网络问题,导致工作节点 #1 和 #2 上的 CPU 使用率很高,但 pod 日志中没有任何内容向我跳出。
CoreDNS v1.7.0 Flannel v0.13.1-rc1 MetalLB v0.9.5
有没有人对要检查什么以查明真相有任何建议?
提前致谢!
kubernetes - 使用 MetalLB 将公共 IP 添加到 Nginx 入口控制器
我的集群中有三个节点位于我无法控制的防火墙后面。这个防火墙有一个与之连接的公共 IP,可以将流量转发到我的 kubernetes 节点。它向我的节点开放了端口 80 和 443。
最初,我在 MetalLB 配置中使用了公共 IP,如下所示:
但是在阅读了另一个问题的答案后,我猜它是无效的,因为 MetalLB 使用的 IP 需要与节点位于同一子网上?他们都在使用私有IP。
当我在本地测试一个监听端口 80 的 HTTP 服务器并在实际节点(不在集群中)上运行它时,我能够从网络外部获得公共 IP 的响应。
所以我的问题是: 如何让 MetalLB 或 Nginx 入口控制器在端口 80 和 443 上监听传入请求?
当使用curl 186.xx.xx.xx:80
集群中的一个节点时,我会收到来自 nginx 入口控制器的响应。但不是在节点之外执行此操作时。
kubernetes - 如何使用 MetalLB 配置 k8s 反向代理服务
我需要从端口 80 访问 jupyter-lab 并将 k8s 配置重定向到 8888。这是我设置自己学习 k8s 网络的问题,并且还要让 jupyter-lab 运行。
这是 MetalLB 配置图。本地 DNS 将“jupyter-lab.k8s.home”解析为这些 IP 地址
这是我的 LoadBalancer 指向入口控制器,这不是暴露端口 80 并重定向到目标 8888 吗?
这是我的入口控制器,它是否正确配置了指向 CIP 的入口对象?
这是针对我的 jupyer-lab 部署的 CIP
这是我在端口 8888 上运行 jupyter-lab 的部署
我确实看到了 jupyter-lab.k8s.home:8888,但我无法使用获得的令牌登录 kubectl logs -n default jupyter-lab-dpt-dfbd554b7-bf7fk
如何设置配置以便我可以浏览到http://jupyter-lab.k8s.home?noportnumber
kubernetes - 使 istio-ingress 与 metallb 裸机 kubernetes 集群一起工作
2021 年 14 月 3 日更新
Metallb LoadBalancer IP192.168.0.21
只能从集群(主/节点)访问。
问题
试图让 istio 在 Vmware ESXI 上使用 metallb。
安装 MetalLb 与 helm install metallb bitnami/metallb -n metallb-system -f metallb-config.yaml
使用https://istio.io/latest/docs/setup/install/helm/安装 istio。
同时,metallb 控制器日志说它分配了 IP。
我正在尝试使用https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/安装一个简单的示例 HTTPBIN
但是IP192.168.0.21
永远不会解析。来自同一网络中的其他机器。
curl -s -I -HHost:httpbin.example.com "http://192.168.0.21:80/status/200"
我尝试使用 Nginx-ingress 安装
效果很好,任何人都可以指导 istio 如何与裸机 metallb 一起工作。