开发机器作为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
这也允许您通过集群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的开发者。