kubernetes6 (ingress)

一、Ingress服务简介

单独用service暴露服务的方式,在实际生产环境中不太适用。
ClusterIP的方式只能在集群内部访问;NodePort方式,当服务在集群中运行过多时,NodePort的端口管理是灾难;LoadBalance方式受限于云平台,且通常在云平台部署ELB还需要额外的费用。

一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。Ingress由两部分组成:Ingress controller和Ingress服务。

Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。

ingress服务的使用必须在策略网络中才能实现,如calico网络

二、ingress部署

用deployment控制器部署ingress-controller,创建一个LoadBalancer类型的service关联这组pod。LoadBalancer的service绑定了公网地址。真机进行域名解析之后,即可实现集群服务的对外暴露

上传镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改配置文件

Installation Guide - NGINX Ingress Controller https://kubernetes.github.io/ingress-nginx/deploy/
在这里插入图片描述
下载deloy.yaml文件
在deloy.yaml文件修改镜像地址
在这里插入图片描述
在这里插入图片描述
执行deploy.yaml清单
在这里插入图片描述
主要负责nginx的负载均衡器
查看ingress-nginx的所有信息,可以看到ingress-nginx-controller已经running
在这里插入图片描述
svc和pod都已经就绪
查看svc暴露端口为32567
在这里插入图片描述
有对应的
在这里插入图片描述

创建ingress服务

在这里插入图片描述
在这里插入图片描述
按照这个信息修改ingress.yaml
在这里插入图片描述
在这里插入图片描述
访问控制器时,就可以转发到myapp-svc端口上
在这里插入图片描述客户端测试访问的32567端口,访问成功
在这里插入图片描述
在这里插入图片描述
修改为loadbalancer,被分到一个vip
在这里插入图片描述
在这里插入图片描述
可以直接curl 172.26.240.100,和下图获得同样效果
在这里插入图片描述

ingress管理多个svc

清除之前的实验
在这里插入图片描述
将deployment.yaml和ingress.yaml放到一个路径
复制headless
在这里插入图片描述
编辑deployment
在这里插入图片描述
运行
ingress后面调度的是svc,svc资源和ingress在一起
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

访问不同的路径可以接到不同的svc上

在这里插入图片描述
在这里插入图片描述
现在通过域名进行暴露
在这里插入图片描述
在这里插入图片描述
解析到vip上
在这里插入图片描述
负载均衡
在这里插入图片描述

加密认证重定向

现在想通过443端口HTTPS方式(加密)来访问服务
原本的yaml
在这里插入图片描述

开启tls加密

开启集群,生成key
在这里插入图片描述
用生成的证书和key创建tls-secrets(secrets对应密钥)
在这里插入图片描述
在这里插入图片描述
两个域名都用下面的tls-secret加密方法
在这里插入图片描述
在这里插入图片描述
没有定义后端默认页会显示404
在这里插入图片描述
一旦启动加密,就是自动重定向
在这里插入图片描述
在这里插入图片描述
说明加密生效

认证

在这里插入图片描述
存入认证信息
在这里插入图片描述
其实是一个base64的编码格式
在这里插入图片描述

annotation参数

Annotation,顾名思义,就是注解。Annotation可以将Kubernetes资源对象关联到任意的非标识性元数据。使用客户端(如工具和库)可以检索到这些元数据。Annotation与Label类似,也使用key/value键值对的形式进行定义。不同的Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(Metadata),并且用于Label Selector。而Annotation则是用户任意定义的“附加”信息,以便于外部工具进行查找,很多时候,Kubernetes的模块自身会通过Annotation的方式标记资源对象的特殊信息。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
401是需要认证
在这里插入图片描述

重写功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重定向到一个路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值