在运行为 Windows Docker Desktop 的 Kubernetes 集群中,是否有类似于 host.docker.internal 的等效项?

4

应用场景: 我有一个启用Kubernetes的Docker桌面。我想从Kubernetes节点连接到运行在我的笔记本电脑上的数据库,而不使用笔记本电脑的IP地址。

我希望在Kubernetes终点内引用Windows Host机器,而不使用主机的动态IP。在Docker中,有一个特殊的DNS名称host.docker.internal,允许连接主机机器终点。但我无法为终点IP指定该名称。 Kubernetes中是否有类似的东西?


谢谢您的回复。我还没有找到答案。我改变了我的方法,使用这个链接在Kubernetes中安装Oracle - https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance - Sreeram
2个回答

5

使用host.docker.internal

我在Mac上测试过,但Windows应该也可以使用相同的方法。

  1. Spin up an alpine pod (deployment yaml borrowed from rossbackp).

    apiVersion: v1
    kind: Pod
    metadata:
      name: alpine
      namespace: default
    spec:
      containers:
      - image: alpine:3.2
        command:
          - /bin/sh
          - "-c"
          - "sleep 60m"
        imagePullPolicy: IfNotPresent
        name: alpine
      restartPolicy: Always
    
    kubectl apply -f deployment.yaml  # after saving the above file as deployment.yaml
    
  2. Start a simple web server, on the host.

    mkdir /tmp/server
    cd /tmp/server
    echo "hi" > index.html
    python -m SimpleHTTPServer 8000
    
  3. Access the web server from the alpine pod.

    kubectl exec -it alpine -- sh
    wget -O- host.docker.internal:8000
    

如果您的应用程序在启动过程中需要连接到运行在主机上的数据库,那么这种方法将无法实现。 - Thakhani Tharage

-1

它并没有,但我已经改变了在Kubernetes中使用Oracle的方法 - https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance - Sreeram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接