我已经在可以从互联网访问的服务器上安装了 minikube。
我创建了一个可用的 kubernetes 服务:
>kubectl get service myservice
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myservice 10.0.0.246 <nodes> 80:31988/TCP 14h
minikube的IP地址是:
>minikube ip
192.168.42.135
我想要网址http://myservice.myhost.com
(即端口 80)映射到 minikube 中的服务。
我在主机上运行 nginx(与 kubernetes 完全无关)。我可以设置一个虚拟主机,将 URL 映射到192.168.42.135:31988
(节点端口)并且工作正常。
我想使用入口。我已经添加并启用了入口。但我不确定:
a) yaml 文件应包含什么
b) 如何将来自浏览器的端口 80 上的传入流量重定向到入口和 minikube。
c) 我还需要使用 nginx 作为反向代理吗?
d) 如果是这样,ingress-nginx 运行在哪个地址(以便我可以将流量映射到它)?
Setup
首先,你需要一个nginx 入口控制器 https://github.com/kubernetes/ingress-nginx.
nginx 实例将侦听主机 80 和 443 端口,并将每个 HTTP 请求重定向到定义了入口配置的服务,如下所示。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-service-ingress
annotations:
# by default the controller redirects (301) HTTP to HTTPS,
# the following would make it disabled.
# ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: myservice
servicePort: 80
Use https://{host-ip}/
要访问 myservice,主机应该是运行 nginx 控制器的主机。
Outside
通常你不需要在 kubernetes 集群之外安装另一个 nginx。
虽然 Minikube 有点不同,它是在虚拟机而不是主机中运行 kubernetes。
我们需要做一些端口转发,例如 host:80 => minikube:80,在主机中运行反向代理(如 nginx)是一种优雅的方式。
也可以通过以下方式完成在 Virtualbox 中设置虚拟网络端口转发 https://www.virtualbox.org/manual/ch06.html#natforward.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)