首页 > kubernetes(k8s) > kubernetes之ingress负载
2019
08-05

kubernetes之ingress负载

ingress常用来做负载,常见的组合有

  • ingress + nginx
  • ingress + HAproxy

当前因个人项目,ingress-nginx用的比较多. 所以主要介绍前一种

ingress + nginx

Ingress 部署

第一步:安装插件

需要事先导入下载好的镜像,否则下载不下来

ingress镜像下载地址:

下载之后解压,先导入到你的所有节点docker中,再继续往下进行

官网提供的那个yaml本人亲测问题很多,建议用我提供这个

插件安装成功后,查看

第二步:创建svc

当前service的类型为nodeport 这个根据自己需求。

创建完成后,查看

下来配置Ingress 代理访问

本篇文章只演示

  • http
  • https
  • BasicAuth
  • Nginx 进行重写

ingress工作原理图(个人理解,如有不足请指正)

1. Ingress HTTP 代理访问

根据上图理解,需要创建2组deployment (nginx-dm 和nginx-dm2) 和 2组 svc 分别是( (nginx-svc 和nginx-svc2) )

然后修改本地(宿主机)hosts映射到你的master节点,然后浏览器访问绑定的域名,端口为ingress-nginx svc所提供的http端口

由于我2组pod都是同样镜像,所以看起来都一样,其实访问的是各自对应的svc下的pod

2.Ingress HTTPS 代理访问

1.创建证书,以及 cert 存储方式

创建ingress 和上面基本一致(这里只演示一组,太懒)

创建完成后访问域名,注意这里域名后面加的端口是ingress-nginx svc 的https的端口


3.Nginx 进行 BasicAuth

创建ingress 较上面略有改动(这里只演示一组,太懒)

创建完成后,访问一下,注意这里是http访问模式

4.Nginx 进行重写

deployment 和 svc 就不创建了 就直接创建ingress,让ingress直接把域名和关联service写入到ingress-nginx svc中然后重启,就可以通过域名访问了。

访问

访问结果,应该会提示输入用户名密码

关于ingress文件解释(重点)

进入到这个pod中我们查看部分配置文件

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。