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 部署一个博客应用的简单配置文件

  1. 外网通过域名 nginx.xiange.tech 来访问应用

  2. 代理服务 nginx 来做负载均衡

  3. nginx 暴露出 80 端口

使用 Ingress 配置路由规则如下

我们使用 Ingress 把它配置到了 nginx.xiange.tech 该域名下,在公网环境下的浏览器中打开域名 nginx.xiange.tech,可以看到熟悉的 nginx 配置页面

小结

部署一个应用从 Deployment,Service 再到 Ingress 的完整配置文件如下

最后更新于