kubernetes-Ingress最佳方式对外暴露应用
看到k8s-node2节点监听着80端口,这个跟service不一样,service是所有的后端pod都会监听80/443端口,这个是只有部署ingree-nginx的那台机器会监听80/443端口。hostNetwork: true - 当前的网络使用主机节点网络对外提供服务,如果在不做任何的配置下,刚才创建的。--key=blog.ctnrs.com-key.pem- 自签证书Key。--ce
一、Ingress是什么



二、IngressController部署


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

修改这两处,image如果能下载下来镜像也可不修改
hostNetwork: true - 当前的网络使用主机节点网络对外提供服务,如果在不做任何的配置下,刚才创建的



转到k8s-node2命令行:

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


创建一个应用
创建一个Service
合并成一个yaml


创建一个Ingress




四、Ingress HTTPS

这里演示通过cfssl自签证书





注:
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

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


总结:

Ingress-Nginx高可用方案

将所有Deployment改成DaemonSet
删掉replicas:1 副本数配置


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



所有评论(0)