kubernetes-Ingress最佳方式对外暴露应用

一、Ingress是什么

kubernetes-Ingress最佳方式对外暴露应用_第1张图片

kubernetes-Ingress最佳方式对外暴露应用_第2张图片

二、IngressController部署

kubernetes-Ingress最佳方式对外暴露应用_第3张图片

kubernetes-Ingress最佳方式对外暴露应用_第4张图片

部署ingress-nginx参考下面这篇文章:k8s部署ingress-nginx步骤_quay.io/kubernetes-ingress-controller/nginx-ingres-CSDN博客

kubernetes-Ingress最佳方式对外暴露应用_第5张图片

修改这两处,image如果能下载下来镜像也可不修改

hostNetwork: true - 当前的网络使用主机节点网络对外提供服务,如果在不做任何的配置下,刚才创建的

kubernetes-Ingress最佳方式对外暴露应用_第6张图片

kubernetes-Ingress最佳方式对外暴露应用_第7张图片

kubernetes-Ingress最佳方式对外暴露应用_第8张图片

转到k8s-node2命令行:

kubernetes-Ingress最佳方式对外暴露应用_第9张图片

看到k8s-node2节点监听着80端口,这个跟service不一样,service是所有的后端pod都会监听80/443端口,这个是只有部署ingree-nginx的那台机器会监听80/443端口。

三、Ingress对外暴露网站

kubernetes-Ingress最佳方式对外暴露应用_第10张图片

kubernetes-Ingress最佳方式对外暴露应用_第11张图片

创建一个应用

创建一个Service

合并成一个yaml

kubernetes-Ingress最佳方式对外暴露应用_第12张图片

kubernetes-Ingress最佳方式对外暴露应用_第13张图片

创建一个Ingress

kubernetes-Ingress最佳方式对外暴露应用_第14张图片

kubernetes-Ingress最佳方式对外暴露应用_第15张图片

kubernetes-Ingress最佳方式对外暴露应用_第16张图片

kubernetes-Ingress最佳方式对外暴露应用_第17张图片

四、Ingress HTTPS

kubernetes-Ingress最佳方式对外暴露应用_第18张图片

这里演示通过cfssl自签证书

kubernetes-Ingress最佳方式对外暴露应用_第19张图片

kubernetes-Ingress最佳方式对外暴露应用_第20张图片

kubernetes-Ingress最佳方式对外暴露应用_第21张图片

kubernetes-Ingress最佳方式对外暴露应用_第22张图片

注:

        ca* - 自签CA证书

        blog.ctnrs.com* - 域名自签证书

将域名证书文件保存到Secret - 这一步,可以使用命令行也可以使用yaml创建,这里使用yaml创建

注:

     tls - Secret资源名称

      --cert=blgo.ctnrs.com.pem  - 自签证书

      --key=blog.ctnrs.com-key.pem  - 自签证书Key

3.Ingress配置tls

kubernetes-Ingress最佳方式对外暴露应用_第23张图片

这里域名没对应上,自己改下

kubernetes-Ingress最佳方式对外暴露应用_第24张图片

kubernetes-Ingress最佳方式对外暴露应用_第25张图片

总结:

kubernetes-Ingress最佳方式对外暴露应用_第26张图片

Ingress-Nginx高可用方案

kubernetes-Ingress最佳方式对外暴露应用_第27张图片

将所有Deployment改成DaemonSet

删掉replicas:1 副本数配置

kubernetes-Ingress最佳方式对外暴露应用_第28张图片

kubernetes-Ingress最佳方式对外暴露应用_第29张图片

在实际中服务器会很多,每个都部署一个ingress-nginx也不现实,可以采取DaemonSet+nodeSelector的方式部署到特定的几台node,然后将这几台挂载到公网的负载均衡器对外提供服务。

你可能感兴趣的:(k8s,kubernetes,容器,云原生)