1

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

4

2 回答 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 访问主机端口? ,这很可能是您正在寻找的解决方案。

  1. 使用qoomon/docker-host 的解决方法
---
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: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 回答