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)