我正在运行一种集群,并从我需要访问主机的一个 pod 中运行。我知道在 minikube 中你可以使用它来10.0.0.2
访问它,有什么方法可以访问它,就像我可以host.docker.internal
在 Docker Desktop 上使用一样?
问问题
92 次
2 回答
0
Docker 使用默认子域 172.17.0.0/16,并为 pods 分配 IP 地址 172.17.XX
可以使用 ip 地址 172.17.0.1 访问主机服务器
于 2022-02-06T08:38:50.490 回答
0
检查是否可以从 Kind pod 访问主机端口? ,这很可能是您正在寻找的解决方案。
---
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
带有容器名称的种类 pod:test
本地容器:myapp 暴露端口 8081
在防火墙中允许端口
iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
现在从 kind 集群中的容器测试内部,您可以运行:
curl 172.17.0.1:8081
其中 172.17.0.1 是您的 docker bridge 默认网关。
于 2022-02-07T12:00:25.367 回答