k8s-ingress

news/2024/7/4 7:47:13 标签: kubernetes, 容器, 云原生

Ingress实现https代理访问:

证书

密钥

创建证书,密钥

Secret保存密钥信息,部署pod时把secret挂载到pod

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/0=nginxsvc"

解析:

Req:生成证书文件的情况

 -x509:生成-x509自签名的证书

-sha256:表示使用sha-256算法

-nodes:表示生成的密钥不加密

-days 365:证书有效期是365天

-newkey rsa:2048 :RSA的密钥对,长度为2048位

-keyout tls.key -out tls.crt :密钥文件key,证书文件crt

-subj "/CN=nginxsvc/0=nginxsvc" :CN common name O: organization

演示:

加密

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/0=nginxsvc"

kubectl create secret tls tls-secret --key tls.key --cert tls.crt

mkdir /opt/https

映射

访问测试

负载均衡测试

可以实现轮询:

浏览器访问:

Nginx如何实现的登录账户认证:

生成auth认证

创建通用加密模版

创建一个新的ingress配置文件,让其是需要认证的

映射

浏览器访问

演示容器内页面跳转

Nginx的重定向,nginx的重定向

访问测试,实现跳转

Nginx-ingress-controller介绍到此结束

接下来介绍traeflk ingress controller:

Traefik是一个为让部署微服务更加快捷的http的反向代理负载均衡

Traefik设计时就能够实时的和k8s api交互,感知后端service以及pod的变化,可以自动更新配置和重载

Traefik的部署方式:

Daemonset

Deployment

Daemonset的特点:

优点:每个节点都会部署一个traffic,节点感知,可以自动更新发现,更新容器的配置,不需要手动重载

缺点:资源占用,大型集群当中,daemonset可能会运行多个trafik的实例,尤其是节点上不需要大容量的运行的情况下,没有办法进行扩缩容

部署对外集群:对外的业务会经常变更,daemonset可以更好的,自动发现服务配置变更

Deployment的特点:

优点:集中办公控制,可以使用少量的实例来运行处理这个集群的流量,更容易升级和维护

缺点:deployment的负载均衡不会均分到每个节点,手动更新,它无法感知到容器内部的变化,

部署对内集群对内相对稳定,更新和变化比较少,适合部署deployment

Traffic-tye:internal 对内服务

Traffic-type:external 对外服务

两者的区别:

Nginx-ingress:相对较慢

Trafik-ingress:自动更新和重载,更方便

工作原理都一样,都是七层代理,都可以动态的更新配置,都可以自动发现服务

Trafik-ingress的并发能力,只有Nginx-ingress的60%

我们基本上用的都是nginx-ingress-controller

今天我们就演示deployment

今日作业:演示daemonset,以及配置更新后自动更新重载

样板文件:

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-deployment.yaml

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-rbac.yaml

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-ds.yaml (daemonset)

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/ui.yaml

下载全部执行

注意执行的先后顺序

查看UI界面:

20.0.0.71::31173

页面会立马生成一个traefik

映射        

访问测试

自动发现:(改变副本数即可,然后去浏览器查看)

页面查看

Ingress总结:

Nginx-ingress-controller

Deployment+loadbalancer:公有云负载均衡的公网复制

Daemonset+hostnetwork+nodeselector:和节点服务共享网络,一个节点一个controller pod,使用宿主机的端口性能最好,适合大并发

Deployment+NodePort:最常见得,最常用,简单的方法,但是性能不太好,多了一层NAT地址转发

Traefik-ingress-controller:

Daemonset:对外,可以自动更新容器的配置host节点网络

Deployment:对内,无法自动更新配置

https:

  1. 生成证书,密钥
  2. 创建secret,报存证书和密钥
  3. 创建ingress把secret导入

加密方式:

  1. htpasswd -c auth 认证文件只能是auth
  2. 创建ingress

主要命令:

重定向:

在ingrss文件当中声明的url都会跳转到这个地址


http://www.niftyadmin.cn/n/5341519.html

相关文章

【Godot4自学手册】第一节配置Godot运行环境

各位同学大家好!我是相信神话,从今天开始,我开始自学2D游戏开发,用到的是Godot4。我准备用视频记录整个开发过程,为自学2D开发的同学趟趟路。让我们开始吧。 首先介绍一下Godot是什么东西,在2D游戏开发中是…

可视化 | 【echarts】渐变条形+折线复合图

文章目录 📚html css📚js🐇总体框架🐇option配置项 📚html css html:在这主要是用于整合,将html、css、js连接在一块,虽然单个模板代码量不大,但还是先分开&#xff0…

leetcode—图 岛屿数量

岛屿数量 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网…

通过JavaScript将html网页转换成pdf【完整代码】

文章目录 一、html网页转换成pdf二、jsPDF库三、HTML四、JavaScript五、热门文章 一、html网页转换成pdf <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>HTML to PDF</title><script src&q…

测试不拘一格——掌握Pytest插件pytest-random-order

在测试领域,测试用例的执行顺序往往是一个重要的考虑因素。Pytest插件 pytest-random-order 提供了一种有趣且灵活的方式,让你的测试用例能够以随机顺序执行。本文将深入介绍 pytest-random-order 插件的基本用法和实际案例,助你摆脱固定的测试顺序,让测试更具变化和全面性…

Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享

1.感谢 感谢小伙伴儿的分享&#xff1a; ● 不羁 ● 郭中天 整合调整后的工具类Gitee地址&#xff1a;https://gitee.com/yuanzhengme/java_application_aspose_demo 2.包含的工具类 ● WordToPdfUtil用于将word文档转换为pdf格式的工具类 ● ExcelToPdfUtil用于将excel文档…

第五章 使用 SQL Search - 验证 SQL 搜索项字符串

文章目录 第五章 使用 SQL Search - 验证 SQL 搜索项字符串验证 SQL 搜索项字符串模糊搜索 第五章 使用 SQL Search - 验证 SQL 搜索项字符串 验证 SQL 搜索项字符串 可以使用 %iFind.Utils.TestSearchString()在方法来验证 search_items 字符串。此方法使能够检测语法错误和…

深入理解Linux中的动态库与静态库

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;I Wish My Mind Would Shut Up—Ivoris 0:21━━━━━━️&#x1f49f;──────── 2:04 &#x1f504; ◀️ …