微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kubernetes Ingress在nginx反向代理后面运行

我在服务器上安装了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

我希望URL http://myservice.myhost.com(即端口80)映射到minikube中的服务.

我在主机上运行Nginx(与kubernetes完全无关).我可以设置一个虚拟主机,将URL映射到192.168.42.135:31988(节点端口),它工作正常.

我想使用入口.我添加并启用了入口.但我不确定:

a)yaml文件应该包含什么

b)来自浏览器的端口80上的传入流量如何被重定向到入口和迷你管道.

c)我还需要使用Nginx作为反向代理吗?

d)如果是这样,ingress-Nginx运行的是什么地址(以便我可以将流量映射到它)?

解决方法:

建立

首先,你需要一个nginx ingress controller.

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

使用https:// {host-ip} /访问myservice,主机应该是运行Nginx控制器的主机.

通常你不需要kubernetes集群之外的另一个Nginx.

虽然Minikube有点不同,但它在虚拟机中运行kubernetes而不是主机.

我们需要像主机一样做一些端口转发:80 => minikube:80,在主机中运行反向代理(如Nginx)是一种优雅的方式.

它也可以在setting virtual networking port forward in Virtualbox之前完成.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐