博文

如何为Rancher2.5的ingress添加configmap

图片
  rancher默认会安装一个rke2-ingress-nginx在kube-system命名空间下,之后无论是rancher本体还是其他pod的负载均衡全靠这一个pod。而rke2-ingress-nginx的nginx.conf不但是动态生成的,也是由lua驱动的。这些配置文件和lua脚本可以在pod中的 /etc/nginx/ 下找到。 rke2-ingress-nginx pods 之前我都不知道confignmap的正确附加方法,只能通过在每一个负载均衡添加注释来改变nginx配置,这是非常不优雅而且繁琐的。后来我还试过在rke2-ingress-nginx直接添加注释,然后用kubectl重建pod,直接把nginx炸了。显然,这种操作方式是错的不能再错了,索性我现在发现了如何正确为rancher的ingress-nginx附加configmap。 关于configmap 当使用configmap或者负载均衡注释时,一切都是热更新的,改完不用重启pod,即时生效。不用再担心炸集群,也不用担心服务的可用性。即使配置错误也不会发生什么坏事,只是新配置无法生效而已,不过rancher的web ui在这方面没有错误提示。 ingress-nginx的configmap文档: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ 使用configmap 当在负载均衡的注释中添加配置时,需要在key中添加前缀 nginx.ingress.kubernetes.io/ ,而且不是所有配置项都被支持,参见ingress-nginx注释项文档: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ 为rke2-ingress-nginx附加配置映射(configmap)必须使用指定的名称,这个名称可以在 System/kube-system/rke2-ingress-nginx-controller 工作负载的 入口/命令 中找到 如图所示,rancher2.5的rke2-ingress-nginx的configmap是kube-...

Rancher为nginx ingress配置客户端真实ip透传

图片
前提条件 通过负载均衡访问集群 或者集群运行在nginx,apache,traefik等反向代理之后。 如果ingress直接承载公网流量,就不要配置use-forwarded-headers了,因为客户端ip有被伪造的风险 第一步:导航到存储->ConfigMap,在系统或者所有命名空间中检索ingress-nginx-controller 第二步:如下图 在Data中添加use-forwarded-headers条目 use-forwarded-headers: true yaml变化 rke和rke2只是ingress controller配置项名称略有不同,操作流程是一样的。

docker日志大小限制,清除方法,脚本

设置Docker容器日志文件大小限制: 1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下: # vim /etc/docker/daemon.json { "log-driver":"json-file", "log-opts": {"max-size":"500m", "max-file":"3"} } max-size=500m,意味着一个容器日志大小上限是500M, max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。 2.然后重启docker的守护线程 命令如下: systemctl daemon-reload systemctl restart docker 【需要注意的是:设置的日志大小规则,只对新建的容器有效】 查看宿主机docker所有容器日志文件大小: vim docker_log_size.sh #!/bin/sh echo "======== docker containers logs file size ========" logs=$(find /var/lib/docker/containers/ -name *-json.log) for log in $logs do ls -lh $log done 删除所有容器的日志: vim docker_log_clean.sh #!/bin/sh echo "======== start clean docker containers logs ========" logs=$(find /var/lib/docker/containers/ -name *-json.log) for log in $logs do echo "clean logs : $log" cat /dev/null > $log done e...

申请 dedyn.io 的免费域名(附套 CF 全套教程)

图片
  之前的博客文章中,我介绍了一个需要两边解析的域名 —— ClouDNS。经过万能的网友们发掘之后,我们找到了新的免费域名 —— dedyn.io。多一个免费域名不是更好嘛。这篇文章,我们主要来讲解如何去申请 dedyn.io 的免费域名 准备材料 一枚邮箱 部署步骤 打开其的官网: https://desec.io/  ,然后点击右上角的“Create account”按钮 输入邮箱、选择注册 dedyn.io 二级域名,输入验证码,同意协议,然后点击“Sign up”按钮 查看邮箱收件箱,打开激活链接 往下拉,然后点击“Assign account password”按钮 输入邮箱,验证码,然后点击“Reset password”按钮 检查邮件链接,然后设置一个新的密码 登录账号之后,然后可以发现自己的域名已经注册成功 打开 CF 控制台,然后点击“Add site”按钮。输入自己刚刚申请的域名 选择免费计划,然后点击“Continue” 直接点击“Continue”按钮 在 deSEC 网页中,修改域名的 DNS 服务器 如需解析子域名,则还要在 deSEC 上面添加子域名的 DNS 服务器 转到 SSL 中的 Edge Certificates 页面,找到类似  *.xx.dedyn.io, xx.dedyn.io  的选项,点击展开,然后复制里面的 TXT 记录和值备用 打开 deSEC 的域名 DNS 的 TXT 解析页面,添加 TXT 记录。输入从 13 步复制出来的值 等待大概 15-30 分钟,然后 Status 出现 “Active” 即可

Curl测试socks5 or http 代理命令

  测试socks5命令: curl --socks5 125.119.175.48:8909 http://example.com/ 测试http命令: curl --connect-timeout 2 -x 127.0.0.1:8118 http://google.com   linux curl命令可以使用下面参数设置http(s)代理、socks代理,已经设置它们的用户名、密码以及认证方式:   参数 用法 -x host:port -x [protocol://[user:pwd@]host[:port] --proxy [protocol://[user:pwd@]host[:port] 使用HTTP代理访问;如果未指定端口,默认使用8080端口; protocol默认为http_proxy,其他可能的值包括: http_proxy、HTTPS_PROXY、socks4、socks4a、socks5; 如: --proxy 8.8.8.8:8080; -x "http_proxy://aiezu:123@aiezu.com:80" --socks4 <host[:port]> --socks4a <host[:port]> --socks5 <host[:port]> 使用SOCKS4代理; 使用SOCKS4A代理; 使用SOCKS5代理; 此参数会覆盖“-x”参数; --proxy-anyauth --proxy-basic --proxy-diges --proxy-negotiate --proxy-ntlm 代理认证方式,参考: --anyauth --basic --diges --negotiate --ntlm -U <user:password> --proxy-user <user:password> 设置代理的用户名和密码;

frp图解 附最新.toml配置文件

  frp图解 附最新.toml配置文件 1.frp是什么? frp是一个快速的反向代理服务,可以把NAT或防火墙后面的本地服务暴露到公网上。 frp目前支持TCP、UDP、HTTP以及HTTPS等协议,通过域名可以将请求转发到内网的服务上。 frp的主要功能和优点有: 简单易用,无需复杂的配置就可以直接暴露内网服务。 连接速度快,利用长连接池可以显著提高访问速度。 支持多种协议,包括TCP、UDP、HTTP、HTTPS等。 安全可靠,支持参数加密、身份验证等功能。 跨平台支持,客户端和服务器支持常见的操作系统。 轻量高效,资源占用低,不会明显降低主机性能。 社区活跃,版本迭代快速。 FRP可以用于内部网络穿透、远程桌面或远程服务访问等场景。它可以轻松地通过公网访问部署在公司、家庭内网环境中的服务,如数据库服务器、Web应用等,在保证安全性的同时,获得高性能的访问体验。 2.图解 FRP 主要由两部分组成: FRPC 客户端(frp client) 运行在公司内网机器上 接收来自公网的访问请求 将请求转发给内网服务 FRPS 服务端(frp server) 部署在具有公网 IP 的机器上 暴露服务的公网入口 接收公网访问请求 通过加密隧道转发到 FRPC 3.准备工作 一台有公网IP的服务器 一台内网主机 在服务器端和客户端各自下载对应的版本 https://github.com/fatedier/frp/releases 解压如下: 4.配置文件 # frps.toml bindPort = 7000 # 服务端与客户端通信端口 transport.tls.force = true # 服务端将只接受 TLS链接 auth.token = "public" # 身份验证令牌,frpc要与frps一致 # Server Dashboard,可以查看frp服务状态以及统计信息 webServer.addr = "0.0.0.0" # 后台管理地址 webServer.port = 7500 # 后台管理端口 webServer.user = "admin" # 后台登录用户名 webServer.password = "admin" # 后台登录密码 # frpc.toml transpo...

新版本 frp 参考配置分享

  问题原因分享 去不图床报出了 502 错误,一般是反代或内穿出现问题才会如此报错。杜老师前端反代用的是长亭雷池,通过管理端口访问一切正常,同平台反代的统计平台访问正常,以此可以判断是内穿的问题。 内穿分为服务端以及客户端。通过服务端管理端口访问时页面无法打开;而客户端因为无管理页,只能通过查看日志方式判断其问题的原因,结果并无日志生成。 后尝试查看服务端日志文件,结果发现输出端口为 80,而记忆中并未使用该端口做反代,怀疑是配置文件的问题。重启服务后发现并未加载设置的配置文件,一看官方发现发布 0.52.0 版本后,取消了原有  INI  配置文件,改为  TOML  新格式。 配置文件部分参数值发生了改变,且格式与原来有很大的改变,在此分享一些参考配置,供需要的小伙伴们使用! frps 端完整配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 COPY # A literal address or host name for IPv6 must be enclosed # in square brackets, as in "[::1]:80", "[ipv6-...