3.使用 Ingress 进行域名访问
使用 Ingress 进行域名访问
在上篇文章中我们已经使用 k8s 部署了第一个应用,此时我们可以使用 Ingress 使它可以在互联网上可以被访问到 (当然你要有自己的域名并且指向正确)
部署你的第一个应用: Pod,Application 与 Service
以下是官网搬用的关于 Ingress 的一幅图,用以描述 Ingress 的作用。如果你对它一无所知,你可以把它理解为传统的 nginx,用以配置自己网站的域名使之能够通过外网访问。
internet
|
[ Ingress ]
--|-----|--
[ Services ]其中,Ingress 包含两个组件
Ingress: 配置转发规则,类似于 nginx 的配置文件
Ingress Controller: 转发,类似于 nginx,它会读取 Ingress 的规则并转化为 nginx 的配置文件
而 Ingress Controller 除了 nginx 外还有 haproxy,ingress 等等,我们选用 nginx 作为 Ingress Controller
使用 helm 部署 nginx Ingress Controller
我们使用 helm 选择官方的 stable/nginx-ingress chart 进行部署。
nginx-ingress 会配置一个 type 为 LoadBalancer 的 service, 因此需要配置 EXTERNAL-IP 为k8s集群节点的 IP。 在这里 external-ip 会设置为 [172.17.68.39, 172.17.68.40]
我们可以通过 kubectl get nodes 来获取 IP 地址
在这里 external-ip 会设置为 [172.17.68.39, 172.17.68.40]
校验 nginx-ingress 的部署情况
配置 Ingress 映射域名
与已知知识关联有助于我们更好地学习新知识,以下是关于 nginx 与 ingress 部署一个博客应用的简单配置文件
外网通过域名 nginx.xiange.tech 来访问应用
代理服务 nginx 来做负载均衡
nginx 暴露出 80 端口
使用 Ingress 配置路由规则如下
我们使用 Ingress 把它配置到了 nginx.xiange.tech 该域名下,在公网环境下的浏览器中打开域名 nginx.xiange.tech,可以看到熟悉的 nginx 配置页面
小结
部署一个应用从 Deployment,Service 再到 Ingress 的完整配置文件如下
最后更新于