Jér*_*eau 5 kubernetes minikube
我想知道是否可以将我的 minikube 网络绑定到我的host网络。
我试过:
\nminikube 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"\nRun Code Online (Sandbox Code Playgroud)\n但我收到以下错误:
\n\xe2\x9d\x97 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\nstdout:\n\nstderr:\nError response from daemon: operation is not permitted on predefined host network\nRun Code Online (Sandbox Code Playgroud)\n我能够通过使用来做到这一点haproxy但我想知道是否有更干净的方法来做到这一点。\n我的 minikube 托管在 EC2 实例上,我想将所有内容直接转发到我的 minikube。或者至少是 HTTP/HTTPS 请求。
谢谢!
\nminikube我还没有找到将实例公开--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
Run Code Online (Sandbox Code Playgroud)
确认以下评论:
问题是我想使用该
ingress插件,但该插件不再与--driver=none.
--driver=docker您可以选择直接在 Docker 容器上配置所有资源,而不是使用--driver=none它将所有资源放置在 Docker 容器中。VM. 您将能够直接从其他网络设备查询资源。
目前minikube版本v1.17.1不允许使用该ingress插件--driver=none,但我找到了一种可以配置它的方法。我已将此示例包含在本答案的末尾。请将此视为解决方法。
这个问题(无法在 上使用ingress插件--driver=none)已经在 github 上得到解决:
从暴露的角度来说minikube:
由于它旨在从外部源进行访问,因此我建议尝试其他解决方案,主观上讲,这些解决方案可以更轻松地将您的工作负载暴露给外部源。有许多可用的工具可以生成 Kubernetes 集群,您可以看看哪一个最适合您的需求。他们之中有一些是:
nginx-ingress与minikube --driver=none如前所述,请将其视为解决方法。
附注!
看看你的
NGINX Ingress控制器是如何配置的,minikube addons enable ingress因为在这个例子中它几乎被模仿了。
脚步:
Download清单nginx-ingress YAML:
Deployment清单中的Service从清单中删除Download清单nginx-ingress YAML您可以使用以下清单:
GKE可以下载清单)Deployment清单中的正如我之前所说,跑步时发生的事情minikube addons enable ingress可能会很有用。部署的资源有一些关于您需要如何修改它的线索。
hostPortforHTTP和HTTPScommunications:Error response from daemon: operation is not permitted on predefined host network
Run Code Online (Sandbox Code Playgroud)
--publish-service=$(POD_NAMESPACE)/ingress-nginx-controller: 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
Run Code Online (Sandbox Code Playgroud)
Service从清单中删除您将需要从清单中完全删除名为: Service的类型,因为您已经在使用.LoadBalanceringress-nginxhostPort
完成此步骤后,您应该能够使用Ingress资源并与他们进行通信VM_IP:80/ 443。
其他资源:
| 归档时间: |
|
| 查看次数: |
12347 次 |
| 最近记录: |