我确信由于我对 kubernetes 和 minkube 知之甚少,我无法解决,我需要一些帮助。
我已经在 windows-docker 上设置了 minikub kubernetes 集群。 (最新版本)。我正在尝试设置 emissary-ingress API 网关,它根据 URL 前缀转发流量(例如 /hello/ 将流量发送到 hello kubernetes 服务)我已经设置了所有这些入口流量规则,但不幸的是,我坚持如何测试它。
我无法访问该 URL。这是我的配置。 我尝试按照以下方式理解。
kubectl get svc -A
minikube service list
minikube tunnel
minikube service emissary-ingress -n emissary --url
但我不明白为什么这不起作用。我确信与外部 IP 待定状态有关。但我不知道如何解决。
检查这个metalLb
Metal LB 正在裸机上创建负载均衡器,并且可以与 minikube 一起在本地使用。
使用 Metal LB,您可以像云提供商提供的选项一样创建外部 LB。
尝试应用此文件:
kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.7.3/manifests/metallb.yaml
检查 Pod 是否已启动并正在运行
kubectl get pods -n metallb-system
为本地系统配置configmap,以便metal lb可以管理IP。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: my-ip-space
protocol: layer2
addresses:
- 127.0.0.240/28
您可以在这里阅读更多内容:https://medium.com/@JockDaRock/kubernetes-metal-lb-for-docker-for-mac-windows-in-10-minutes-23e22f54d1c8 baki kai vandho ave to kevu
或者你也可以尝试端口转发API网关的服务并检查是否工作。
使用minikube隧道:
minikube tunnel
https://minikube.sigs.k8s.io/docs/handbook/accessing/#loadbalancer-access
LoadBalancer 服务是向互联网公开服务的标准方式。通过这种方法,每个服务都会获得自己的 IP 地址。
LoadBalancer 类型的服务可以通过 minikubetunnel 命令公开。
当您启动 minikube 隧道时,您将看到如何将外部 IP 添加到服务中。