开发机器作为Minikubenetworking的一部分?

是否有可能让我的开发机器成为Minikubenetworking的一部分?

理想情况下,它应该同时工作:

  • 在我的IDE中开发一个应用程序时,我可以使用与pod使用相同的地址访问Minikube中的k8s资源。
  • 运行在Minikube中的Pod可以访问我在IDE中运行的应用程序,例如通过HTTP请求。

这听起来像是使用networking路由的GCE上的第一部分是可行的,所以我想知道是否可以在本地使用Minikube进行操作。

上游有一个问题( kubernetes / minikube#38 ),以讨论这个特定的用例。

kube-proxy已经在minikube虚拟机内部添加了IP转发所需的IPtables规则(这不是minikube特有的),所以你只需要在你的本地通过minikube的eth1接口的IP地址向容器networking添加静态路由机:

 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是容器networkingCIDR, 192.168.42.58是minikube虚拟机(使用minikube 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 <nodes> 80:30000/TCP 35s 

kubedash

这也允许您通过集群DNS( kube-dns addon)parsingcluster.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 

您可以通过查看网真 ,为Kubernetes微服务提供本地开发。

完全披露:我是Telepresence的开发者。