使用 Docker 驱动程序启动 Minikube 并将其绑定到主机网络

2023-11-21

我想知道是否可以将我的 minikube 网络绑定到我的host网络。

I tried:

minikube start --memory=10000 --cpus=4 --vm-driver=docker --kubernetes-version=v1.19.6 --mount --mount-string="/usr/local/citizennet/db:/usr/local/citizennet/db" --network="host"

但我收到以下错误:

❗  Unable to create dedicated network, this might result in cluster IP change after restart: un-retryable: create network host 192.168.49.0/24: docker network create --driver=bridge --subnet=192.168.49.0/24 --gateway=192.168.49.1 -o --ip-masq -o --icc -o com.docker.network.driver.mtu=1500 --label=created_by.minikube.sigs.k8s.io=true host: exit status 1
stdout:

stderr:
Error response from daemon: operation is not permitted on predefined host network

我能够通过使用来做到这一点haproxy但我想知道是否有更干净的方法可以做到这一点。 我的 minikube 托管在 EC2 实例上,我想将所有内容直接转发到我的 minikube。或者至少是 HTTP/HTTPS 请求。

Thanks!


我还没有找到暴露的方法minikube实例与--driver=docker到主机网络(除了$ kubectl port-forward svc/svc-name --address=0.0.0.0 local_port:pod_port在主机上运行)。

它产生与原始发布者遇到的相同错误:

Error response from daemon: operation is not permitted on predefined host network

确认以下评论:

问题是我想用ingress插件和这个插件不再兼容--driver=none.

而不是使用--driver=docker这会将所有资源放置在 Docker 容器中,您可以选择--driver=none这将直接在VM。您将能够直接从其他网络设备查询资源。

For now minikube版本v1.17.1不允许使用ingress插件与--driver=none但我找到了一种可以配置它的方法。我已将此示例包含在本答案的末尾。请将此视为解决方法。

这个问题(无法使用ingress插件--driver=none) 已在 github 上解决:

  • Github.com:Kubernetes:Minikube:问题:从 v1.12.x 开始,Ingress 插件停止与“无”VM 驱动程序一起使用

从揭露的角度来谈minikube:

由于它旨在从外部源进行访问,因此我建议尝试其他解决方案,主观上讲,这些解决方案可以更轻松地将您的工作负载暴露给外部源。有许多可用的工具可以生成 Kubernetes 集群,您可以看看哪一个最适合您的需求。Some其中:

  • Kubeadm
  • 库贝喷雾
  • MicroK8S

部署nginx-ingress with minikube --driver=none

如前所述,请将其视为解决方法。

附注!

看看你的情况如何NGINX Ingress控制器配置有minikube addons enable ingress因为在这个例子中它几乎被模仿了。

Steps:

  • Download the nginx-ingress YAML manifest:
    • 修改Deployment在清单中
    • 删除Service从清单
  • 申请并检查

Download the nginx-ingress YAML显现

您可以使用以下清单:

  • Kubernetes.github.io:入口 Nginx:部署(例如GKE可以下载清单)

修改Deployment在清单中

正如我之前所说,当你跑步时会发生什么minikube addons enable ingress可能会被证明是有用的。部署的资源有一些关于您需要如何修改它的线索。

  • Add the hostPort for HTTP and HTTPS沟通:
          ports:
            - name: http
              hostPort: 80 # <-- IMPORTANT, ADD THIS
              containerPort: 80
              protocol: TCP
            - name: https
              hostPort: 443 # <-- IMPORTANT, ADD THIS
              containerPort: 443
              protocol: TCP
            - name: webhook
              containerPort: 8443
              protocol: TCP
  • 删除--publish-service=$(POD_NAMESPACE)/ingress-nginx-controller:
          args:
            - /nginx-ingress-controller
            - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller # <-- DELETE THIS
            - --election-id=ingress-controller-leader
            - --ingress-class=nginx
            - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
            - --validating-webhook=:8443
            - --validating-webhook-certificate=/usr/local/certificates/cert
            - --validating-webhook-key=/usr/local/certificates/key

删除Service从清单

您将需要完全删除Service类型的LoadBalancer命名:ingress-nginx从清单中,因为您已经在使用hostPort.

完成此步骤后,您应该能够使用Ingress资源并与他们沟通VM_IP:80/443.


其他资源:

  • Kubernetes.io:文档:概念:服务网络:Ingress
  • Minikube.sigs.k8s.io:文档:驱动程序:无
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Docker 驱动程序启动 Minikube 并将其绑定到主机网络 的相关文章

随机推荐

  • Sys.setlocale:设置区域设置的请求...无法满足

    我在用着strptime 在我的包的一个函数中 我需要使用特定的本地设置解析字符串并使用Sys setlocale作为获取英语本地化设置的解决方法 为了减少副作用 之后会恢复之前的本地设置 该函数的基本代码片段如下 parameter se
  • 在 ARCore 中检测垂直平面

    我想知道是否有人能够使用 ARCore SDK 实时识别设备前方的垂直平面 我通过使用直线方程定义墙来获得不错的结果 z Multiplier x Constant For every y 通过 对于每个 y 注释 我的意思是我忽略 y 轴
  • 是否可以使用Python知道 chr 接受的最大数量?

    来自Python的文档chr内置函数 最大值chr接受的是 1114111 十进制 或 0x10FFFF 基数 16 而事实上 gt gt gt chr 1114112 Traceback most recent call last Fil
  • 卷积神经网络的维度

    我试图了解卷积神经网络中的维度如何表现 下图中 输入是具有 1 个通道的 28 28 矩阵 然后有 32 个 5 5 过滤器 高度和宽度的步长为 2 所以我知道结果是 14 14 32 但在下一个卷积层中 我们有 64 个 5 5 滤波器
  • 错误:exportArchive:找不到“io.ionic.starter”的配置文件

    我正在尝试构建我的 ionic 3 应用程序并在我的设备上部署和实时重新加载 因此我正在尝试以下命令 ionic cordova run ios device prod lcs 但运行该命令后 我收到以下错误 error exportArc
  • 如何通过 FileWriter 设置 BufferedWriter 上的缓冲区大小

    我遇到了一个问题BufferedWriter当我使用一些线程将数据写入单个文件时 我设置了缓冲区大小BufferedWriter 但是无论我设置什么数字 当缓冲区为8192 默认缓冲区大小 时 它会将数据刷新到磁盘 而不是我设置的大小 这里
  • 使用 AXIS2 创建的 ADB 存根在客户端获取原始 XML SOAP 响应

    我使用 AXIS2 创建的 ADB 存根访问 SOAP 服务 我想记录服务返回的任何轴故障的原始 XML 响应 我可以将这些错误捕获为 ServiceError 但是 我没有找到检索原始 XML 的方法 请参见下面的示例 我找到了一种使用
  • Google Api Php 客户端的刷新令牌

    我正在使用 Google API 客户端访问 Google Analytics 我想以离线模式访问数据 所以我需要刷新令牌 如何获取刷新令牌 尝试使用以下代码
  • 多线程比单线程慢

    我有以下代码 控制台应用程序 Program cs 的完整内容 单线程执行 countUp 到 countUp4 需要 13 秒 多线程执行需要 21 秒 我有 Intel Core i5 2400 3 10 GHz 8 GB RAM Wi
  • 在 FastAPI 中从根目录提供静态文件

    我正在尝试让 FastAPI 与 Svelte 一起工作 我已经使用 Svelte 构建了静态文件 现在我尝试通过 FastAPI 提供它们 问题是构建的 Svelte 文件引用了例如global css从根目录 这意味着我不能将它们安装在
  • 在java中通过ref传递枚举

    如何在java中通过引用传递枚举参数 有什么解决办法吗 Java 总是按值传递 您传递引用 而不是对象 引用是按值传递的 您可以更改引用在传入的函数中指向的可变对象的状态 但不能更改引用本身
  • 如何在 Django/Python Web 应用程序中使用 Trac wiki 格式?

    我有一个 Python Web 应用程序 特别是 Django 我正在从 Trac 数据库中读取一些数据 其中的描述使用维基格式 并将其显示为 HTML 我考虑过 markdown 模块 但意识到 Trac wiki 格式和 markdow
  • 在 Symfony2 中异步调用命令

    我想从 Symfony2 的控制器中异步调用命令 到目前为止我找到了以下解决方案 cmd this gt get kernel gt getRootDir console new MLCJobWorkerCommand gt getName
  • 如何给tomcat设置IP地址? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有一个 Tomcat 服务器 其中 war文件正在运行 我可以运行 war打字时文件本地主机 8080 在浏览器中 但我必须通过网络访问这个 war 文件 所以我有一个外部IP
  • 使用 matplotlib 显示图像序列

    我有一个简单的 python 脚本 使用 OpenCV 从文件夹加载图像并循环显示它们 我想使用重现这种效果matplotlib import cv2 as cv import os im files for f in os listdir
  • 在tomcat中绑定JNDI数据源?

    是否可以通过编程方式将数据源绑定到 Tomcat 6 JNDI 我想动态创建一个数据源 然后通过 JNDI 使其可用 例如 ColdFusion 这就是我所拥有的 public void bindToConext DataSource da
  • “找不到 Python 可执行文件...” - npm install 挂起

    我正在使用 npm install 下载并编译我编写的小型 Node js 应用程序的所有依赖项 我正在使用的 package json 文件是正确的并且包含所有需要的信息 要安装的软件包之一具有 node gyp 作为依赖项 因此我之前安
  • Spring Boot webjars:无法通过 webjar 加载 javascript 库

    我有一个 Spring Boot 我使用 Thymeleaf 进行模板化 项目 我想在其中使用一些 jQuery 库 不幸的是 webjar 根本没有加载 我尝试了很多配置 但都失败了 这是我的 HTML 页面的代码片段
  • 如何删除 VSTS 中的共享步骤

    我正在尝试以编程方式删除共享步骤 我正在尝试导出 导入 并且正在生成大量步骤 并且希望能够删除它们 而不是手动删除 一次一个 与所有 隐藏 类别工作项类型一样 无法使用删除工作项 API 删除共享步骤 测试用例 测试计划和测试套件都有特殊的
  • 使用 Docker 驱动程序启动 Minikube 并将其绑定到主机网络

    我想知道是否可以将我的 minikube 网络绑定到我的host网络 I tried minikube start memory 10000 cpus 4 vm driver docker kubernetes version v1 19