我还没有找到暴露的方法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其中:
部署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:文档:驱动程序:无