我在 Azure 中使用 ACS-engine 创建了 Kubernetes 集群并安装了 Ingress Controller 。
我部署了一个服务:
- 在集群内部运行命令curl :/myservice 给出预期的响应。
我使用 NGinx 创建了一个虚拟机,以便获得外部访问,并使用虚拟机的外部 IP,这样对服务的外部访问是存在的。
我的目标:
- 将虚拟机替换为 Azure IAAS 负载均衡器。
我使用 UI 执行的步骤:
点击创建资源 -> 创建公共(public) IP 地址 -> 设置 IP 名称 -> 设置分配静态 -> 定义资源组。
点击创建资源 -> 网络 -> 负载均衡器 -> 选择在第 1 步中创建的公共(public) IP -> 使用相同的资源组。
已创建运行状况探测 -> 协议(protocol) HTTP、端口 32597(入口端口)和路径/myservice
将后端池定义为 Kubernetes 节点(代理)的可用性集。
已创建入站 NAT 规则: 服务:定制。 端口:32597。 可用性集:Kubernetes 节点(代理)
与虚拟机不同,我无法访问该网站,并且在 Loadbalncer 日志中看不到任何信息。
问题:
- 如何获取流量日志?
- 我可以运行 TCPDUMP 吗?
- 如何解决该问题?
谢谢。
最佳答案
据我所知,如果您想通过负载均衡器访问Azure Kubernets集群中的网站,您应该设置负载均衡器规则,而不是NAT规则。规则截图在这里。
How to get the traffic logs ?
您可以像这样使用命令 kubectl logs azure-vote-front-7976b7dcd9-m7445
来获取 Pod 日志。您可以通过kubectl logs podName
获取更多详情。以及这里的测试截图。
Can i run TCPDUMP ?
如果您想在 Kubernets 节点中运行 TCPDUMP,您可以 ssh 进入该节点并使用 root 权限运行 TCPDUMP。以及这里的测试截图。
第三个问题,你可以按照我一开始说的建议来。
关于azure - 如何在 Azure 中为 Kubernetes Ingress Controller 创建负载均衡器 (IAAS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51477687/