当前位置: 首页 > news >正文

K8S的ingress

一。ingress的介绍

对于NodePort和LoadBalance,这两种方法,都有缺点:

1.NodePort方式缺点会占用很多集群的端口,当集群服务变多的时候,缺点更加显著

2.LB的缺点就是每一个service都需要一个LB,浪费,麻烦,并且需要K8S之外的设备

基于上面两种情况,K8S提供了ingress资源对象,ingress只需要一个nodeport或者一个LB就可以满足暴露多个service需求,实际上,ingress相当于一个7层负载均衡器,是K8S对反向代理的一个抽象,他的工作原理类似于nginx,可以理解为在ingress里建立多个映射规则,ingress controller通过监听这些配置规则并且转化为nginx反向代理,然后对外提供服务,在这李有两个给核心概念:

1.ingress:K8S的一个对象,作用是定义请求如何转发到service的规则

2.ingress controller:具体实现反向代理负载均衡的程序,对ingress定义规则进行解析,根据配置的规则来实现请求转发,事项方式很多:nginx,haproxy等

二。Ingress的工作原理:

1.用户编写ingress规则,说明哪一个域对应K8S集群的哪一个服务

2.ingress控制器动态感知ingress服务规则的变化,然后生成一段相应的nginx反向代理配置

3.ingress控制器会将生成的nginx配置写入到一个运行着nginx的服务中,并动态更新

4.到此为止,其实真正的工作就是nginx了,内部配置了用户定义的请求转发规则

三。环境的准备:

1.下载配置文件:wget -c https://gitee.com/kong-xiangyuxcz/svn/releases/download/ingress-nginx-controller-v1.13.1/deploy.yaml

445         image: ingress-nginx/controller:v1.11.2

546         image: ingress-nginx/kube-webhook-certgen:v1.4.3

599         image: ingress-nginx/kube-webhook-certgen:v1.4.3

kubectl apply -f deploy.yaml:启用yaml

kubectl get -f deploy.yaml:删除yaml

四。ingress的用法:

准备工作:

kubectl create deployment myappv1 --image nginx:1.17.1 --dry-run=client -o yaml > myappv1.yaml:创建一个控制器

kubectl create service clusterip myappv1 --tcp 80:80 --dry-run=client -o yaml >> myappv1.yaml:创建servie服务

--dry-run=client模拟执行命令(客户端 dry run),不会实际创建服务,仅生成配置

 cp myappv1.yaml myappv2.yaml:创建两个yaml

运行结果:

使用ingress进行负载均衡:

1. kubectl -n ingress-nginx get ingressclasses.networking.k8s.io:查看自己所在的类

2.kubectl create ingress ingress-test --class nginx --rule="/=myappv1:80" --dry-run=client -o yaml > ingress-test.yml:生成ingress文件

3.进行检测:

4.测试:

五。ingress基于路径的访问:

1.首先删除以前的ingress,避免冲突:

2.创建基于路径的ingress文件:

3.检测结果:

六。基于域名的访问:

测试:

七。建立tls加密

1.建立私钥和证书:openssl req -newkey rsa:2048 -nodes -keyout tls.key -x509 -days 365 -subj "/CN=nginxsvc/0=nginxsvc" -out tls.crt

2.建立资源存储,假如集群:kubectl create secret tls web-tls-secret --key tls.key --cert tls.crt

3.查看secret内容: kubectl get secrets web-tls-secret -o yaml

4.查看类型:

5.进行配置:

6.测试:

七。建立auth认证:

1.下载软件: 

dnf install httpd-tools

2.建立加密用户

 htpasswd -cm auth admin
3.提取到集群空间,generic存储任意键值对形式的敏感数据

kubectl create secret generic auth-web --from-file auth

4.查看加密详细内容:

kubectl get secrets auth-web -o yaml

5.编写yml文件:

6.测试:

八:rewirte重定向:

http://www.dtcms.com/a/334251.html

相关文章:

  • 石头科技披露半年报:营收79.03亿元,同比大增78.96%
  • vscode中用python调用matlab的函数(环境安装)
  • pdf合并代码
  • Autosar Os新手入门
  • IOMMU多级页表查找的验证
  • 从0到1掌握 Spring Security(第三篇):三种认证方式,按配置一键切换
  • Flink Stream API 源码走读 - print()
  • TDengine IDMP 高级功能(3. 概念解释)
  • 用Pygame开发桌面小游戏:从入门到发布
  • MixOne:Electron Remote模块的现代化继任者
  • AI 云电竞游戏盒子:从“盒子”到“云-端-芯”一体化竞技平台的架构实践
  • 【BFS 重构树】P11907 [NHSPC 2023] F. 恐怖的黑色魔物|省选-
  • AI的下一个竞争焦点——世界模型
  • 笔试——Day40
  • 超酷炫的Three.js示例
  • Proteus 入门教程
  • 深度剖析setjmp/longjmp:非局部跳转的内部机制与协程应用限制
  • 双重调度(Double Dispatch):《More Effective C++》条款31
  • RD-Agent for Quantitative Finance (RD-Agent(Q))
  • C#单元测试(xUnit + Moq + coverlet.collector)
  • 深度学习——常见问题与优化改进
  • java中消息推送功能
  • Xiaothink-T6-0.15B混合架构模型深度解析
  • 3 种方式玩转网络继电器!W55MH32 实现网页 + 阿里云 + 本地控制互通
  • 架构调整决策
  • 超越Transformer:大模型架构创新的深度探索
  • 【计算机网络架构】混合型架构简介
  • Blackwell 和 Hopper 架构的 GPGPU 新功能全面综述
  • 【LeetCode每日一题】
  • Mac (三)如何设置环境变量