草庐IT

k8s~云负载转发ingress解析

在k8s应用中,如果你是通过云端防火墙和负载均衡搭配使用时,我们一般是这样与k8s集群中的服务进行通讯的:在云端防火墙安全配置中,配置你的公网域名在云端负载均衡中,为每个业务配置对应的k8s-ingress,通常一组业务相同的域名,对应同一个ingress在云端负载均衡中,配置转发到k8s-ingress暴露的IP+端口,http默认80、https默认443在k8s-ingress中添加对应的公网域名,选择对你的svck8s实际上,根据你的svc会动态转发到它绑定的endpoint上,也就是你实现的pod上当找到pod之后,整理路由请求也就结束的,之后请求处理后,将响应的结果原路返回,即可

k8s~云负载转发ingress解析

在k8s应用中,如果你是通过云端防火墙和负载均衡搭配使用时,我们一般是这样与k8s集群中的服务进行通讯的:在云端防火墙安全配置中,配置你的公网域名在云端负载均衡中,为每个业务配置对应的k8s-ingress,通常一组业务相同的域名,对应同一个ingress在云端负载均衡中,配置转发到k8s-ingress暴露的IP+端口,http默认80、https默认443在k8s-ingress中添加对应的公网域名,选择对你的svck8s实际上,根据你的svc会动态转发到它绑定的endpoint上,也就是你实现的pod上当找到pod之后,整理路由请求也就结束的,之后请求处理后,将响应的结果原路返回,即可

keycloak~LB到Ingress再到K8s的路径问题

问题的产生对于我们的容器化部署项目keycloak来说,当它从云端负载均衡LB直接通过NodePort转发到keycloak时,没有任务问题,一切正常;缺点就是,运维人员要维护一大批端口,哪个端口对应哪个服务,非常容易出乱子。问题的解决只要你不放弃,任何问题都可以解决,前提是不要走死胡同,因为你的方式可能是错误的,需要多尝试。所以,我们找到了不需要配置很多不同端口的方法,就是使用k8s-ingress来解决这个问题,我们用的是ingress/nginx,事实上,ingress也可以选择Treafik、Nginx、HAProxy、Istio,Kong等等集成的。最开始,在接入ingress时,非

keycloak~LB到Ingress再到K8s的路径问题

问题的产生对于我们的容器化部署项目keycloak来说,当它从云端负载均衡LB直接通过NodePort转发到keycloak时,没有任务问题,一切正常;缺点就是,运维人员要维护一大批端口,哪个端口对应哪个服务,非常容易出乱子。问题的解决只要你不放弃,任何问题都可以解决,前提是不要走死胡同,因为你的方式可能是错误的,需要多尝试。所以,我们找到了不需要配置很多不同端口的方法,就是使用k8s-ingress来解决这个问题,我们用的是ingress/nginx,事实上,ingress也可以选择Treafik、Nginx、HAProxy、Istio,Kong等等集成的。最开始,在接入ingress时,非

聊聊APISIX Ingress 认证使用

身份认证在日常生活当中是非常常见的一项功能,大家平时基本都会接触到,ApacheAPISIX作为一个API网关,目前已开启与各种插件功能的适配合作,插件库也比较丰富,目前已经可与大量身份认证相关的插件进行搭配处理,如下图所示。基础认证插件比如Key-Auth、Basic-Auth,他们是通过账号密码的方式进行认证。复杂一些的认证插件如Hmac-Auth、JWT-Auth,如Hmac-Auth通过对请求信息做一些加密,生成一个签名,当API调用方将这个签名携带到APISIX,APISIX会以相同的算法计算签名,只有当签名方和应用调用方认证相同时才予以通过。其他则是一些通用认证协议和联合第三方组件

聊聊APISIX Ingress 认证使用

身份认证在日常生活当中是非常常见的一项功能,大家平时基本都会接触到,ApacheAPISIX作为一个API网关,目前已开启与各种插件功能的适配合作,插件库也比较丰富,目前已经可与大量身份认证相关的插件进行搭配处理,如下图所示。基础认证插件比如Key-Auth、Basic-Auth,他们是通过账号密码的方式进行认证。复杂一些的认证插件如Hmac-Auth、JWT-Auth,如Hmac-Auth通过对请求信息做一些加密,生成一个签名,当API调用方将这个签名携带到APISIX,APISIX会以相同的算法计算签名,只有当签名方和应用调用方认证相同时才予以通过。其他则是一些通用认证协议和联合第三方组件

理解 Net Device Ingress 和 Egress 双重角色

本文是书稿《图解VPC&K8s网络模型》其中一篇。书稿还在继续写,进度不快也不慢,因为二哥不急也不躁。好肉需要慢炖,好书需要多磨。为什么要单独讲这个话题呢?因为我在和同事讨论K8s网络尤其是网络数据流向的时候,会反复提及到网络设备,无论它是物理的还是虚拟的。而网络设备在我们所讨论到的数据流场景里,时而在接收数据,时而在发送数据。也就是说它同时扮演着双重身份:Ingress和Egress。另外我在整理eBPF相关的内容,尤其是tceBPF的时候,再一次发现如果不能准确地在数据流中识别出网络设备是Ingress还是Egress,就无法将代码逻辑和实际运行结果对上号,更勿谈能理解tceBPF了。这样

理解 Net Device Ingress 和 Egress 双重角色

本文是书稿《图解VPC&K8s网络模型》其中一篇。书稿还在继续写,进度不快也不慢,因为二哥不急也不躁。好肉需要慢炖,好书需要多磨。为什么要单独讲这个话题呢?因为我在和同事讨论K8s网络尤其是网络数据流向的时候,会反复提及到网络设备,无论它是物理的还是虚拟的。而网络设备在我们所讨论到的数据流场景里,时而在接收数据,时而在发送数据。也就是说它同时扮演着双重身份:Ingress和Egress。另外我在整理eBPF相关的内容,尤其是tceBPF的时候,再一次发现如果不能准确地在数据流中识别出网络设备是Ingress还是Egress,就无法将代码逻辑和实际运行结果对上号,更勿谈能理解tceBPF了。这样

Kubernetes向集群外部暴露服务的方式,你知道吗?

Kubernetes向进群外暴露服务的方式有三种:Ingress、LoadBlancer类型的Service、NodePort类型的Service。IngressIngress相当于service的service,可以将外部请求通过按照不同规则转发到对应的service。实际上,ingress相当于一个7层的负载均衡器,是k8s对反向代理的一个抽象,大概的工作原理类似于Nginx。Ingress工作原理(以NginxIngress为例):Ingress-controller通过和KubernetesAPIServer交互,动态感知集群中Ingress规则的变化,感知到规则的变化后生成对应的Ng

Kubernetes向集群外部暴露服务的方式,你知道吗?

Kubernetes向进群外暴露服务的方式有三种:Ingress、LoadBlancer类型的Service、NodePort类型的Service。IngressIngress相当于service的service,可以将外部请求通过按照不同规则转发到对应的service。实际上,ingress相当于一个7层的负载均衡器,是k8s对反向代理的一个抽象,大概的工作原理类似于Nginx。Ingress工作原理(以NginxIngress为例):Ingress-controller通过和KubernetesAPIServer交互,动态感知集群中Ingress规则的变化,感知到规则的变化后生成对应的Ng