从运行在同类集群上的pod访问主机



我正在运行一个种类的集群,我需要从其中一个pod访问主机。我知道在minikube中,你可以使用10.0.0.2访问它。有没有什么方法我可以访问它,就像我在Docker Desktop上使用host.docker.internal一样?

Docker使用默认子域172.17.0.0/16,并为pod分配IP地址172.17.X.X

主机服务器可以使用ip地址172.17.0.1 进行访问

检查是否可以从Kind pod访问主机端口?,很可能是您正在寻找的解决方案。

  1. 使用qoomon/docker主机的解决方法
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dockerhost
labels:
k8s-app: dockerhost
spec:
replicas: 1
selector:
matchLabels:
k8s-app: dockerhost
template:
metadata:
labels:
k8s-app: dockerhost
spec:
containers:
- name: dockerhost
image: qoomon/docker-host
securityContext:
capabilities:
add: ["NET_ADMIN", "NET_RAW"]
env:
# Not needed in MacOs:
- name: DOCKER_HOST
value: 172.17.0.1 # <-- docker bridge network default gateway
---
apiVersion: v1
kind: Service
metadata:
name: dockerhost
spec:
clusterIP: None # <-- Headless service
selector:
k8s-app: dockerhost
  1. 检查iptables方式

具有容器名称的类pod:测试

本地容器:myapp暴露端口8081

允许防火墙中的端口

iptables -I INPUT -p tcp --dport 8081 -j ACCEPT现在,从实物集群中的容器内部测试,您可以运行:

curl 172.17.0.1:8081

其中172.17.0.1是您的docker网桥默认网关。

最新更新