是否有可能让我的开发机器成为Minikube网络的一部分?
理想情况下,它应该双向工作:
>在我的IDE中开发应用程序时,我可以使用pod将使用的相同地址访问Minikube内的k8s资源.
>在Minikube中运行的Pod可以访问在IDE中运行的应用程序,例如通过HTTP请求.
This听起来像第一部分在GCE上使用网络路线是可行的,所以我想知道它是否可以在本地使用Minikube.
最佳答案
上游(kubernetes/minikube#38)存在一个问题,以讨论该特定用例.
kube-proxy已经在minikube VM中添加了IP转发所需的IPtables规则(这不是minikube特有的),因此您所要做的就是通过本地minikube的eth1接口的IP添加静态路由到容器网络机:
ip route add 10.0.0.0/24 via 192.168.42.58 (Linux)
route -n add 10.0.0.0/24 192.168.42.58 (macOS)
其中10.0.0.0/24是容器网络CIDR,192.168.42.58是minikube VM的IP(使用minikube ip命令获得).
然后,您可以使用其群集IP从本地环境访问Kubernetes服务.例:
❯ kubectl get svc -n kube-system kubernetes-dashboard
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard 10.0.0.56
这还允许您通过群集DNS(kube-dns插件)解析cluster.local域中的名称:
❯ nslookup kubernetes-dashboard.kube-system.svc.cluster.local 10.0.0.10
Server: 10.0.0.10
Address: 10.0.0.10#53
Name: kubernetes-dashboard.kube-system.svc.cluster.local
Address: 10.0.0.56
如果您碰巧在本地计算机上运行了本地dnsmasq,则可以轻松利用此功能并将cluster.local域的所有DNS请求转发到kube-dns:
server=/cluster.local/10.0.0.10