Myluzh Blog

K8S 命名空间资源配额 (ResourceQuota) 和资源限制 (LimitRange)

2024-9-6 myluzh Kubernetes

0x00 概述 在 Kubernetes 中,ResourceQuota 和 LimitRange 是两种用于管理命名空间资源使用的重要机制。它们帮助确保集群资源的有效分配,防止资源过度消耗。下面将介绍如何配置这两种机制,并解释它们的相互作用。 ResourceQuota: 适用于整个命名空间,限制命名空间中所有 Pod 的总资源使用量。 如果命名空间中的资源总使用量超出配额,则无法创建新的资源(例如,Pod、服务等)。 LimitRange: 适用于命名空间中的单个 Pod 和容器,确保它们的资源请求和限制在指定的范围内。 如果容器的资源请求或限制超出 LimitRange 定义的范围,Kubernetes 将拒绝 Pod 的创建。 0x01 使用 ResourceQuota 限制命名空间的总资源 ResourceQuota 用于设置一个命名空间中所有资源的总量上限。这包括 CPU、内存、存储、Pod 数量等。它确保命名空间中的资源使用不会超出指定的配额。 apiVersion: v1 kind: ResourceQuota metadata: name: example-quota ...

阅读全文>>

标签: k8s kubernetes Namespace ResourceQuota LimitRange 资源限制

评论(0) (231)

K8S部署单节点Redis & 高可用Redis集群

2024-9-4 myluzh Kubernetes

0x01 部署单节点redis 注意:如果需要持久化就把容器的/data目录挂载出来。 apiVersion: v1 kind: ConfigMap metadata: name: redis-config namespace: test # 根据实际情况调整 data: redis.conf: | # 监听所有网络接口 bind 0.0.0.0 # 设置Redis密码 requirepass qwer1234 # 关闭保护模式,允许远程连接 protected-mode no # 配置内存使用最大量 maxmemory 2147483648 # 内存满时的淘汰策略为volatile-lru,即仅对设置了过期时间的键使用LRU淘汰策略。 maxmemory-policy volatile-lru # 设置日志文件路径 logfile "/data/redis.log" # RDB快照,每 600 秒(10 分钟)和至少 120 个键被修改时执行持久化操作。 ...

阅读全文>>

标签: k8s redis k8s部署 redis集群 redis-operater operater operater.io

评论(0) (309)

Nginx性能优化笔记

2024-9-3 myluzh NOTE

0x01 Nginx 工作进程数量 Nginx 的 worker_processes 参数设置了工作进程的数量。通常建议将其设置为 CPU 核心数的数量或核心数的两倍。可以使用以下命令查看 CPU 核心数: grep ^processor /proc/cpuinfo | wc -l 配置示例: worker_processes 4; 0x02 CPU 亲和力设置 worker_cpu_affinity 参数用于指定每个工作进程绑定的 CPU 核心。根据 CPU 核心数进行配置: 对于 4 核 CPU: worker_cpu_affinity 0001 0010 0100 1000; 对于 8 核 CPU: worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 注: worker_processes 最多设置为 8,超过这个数值可能不会带来性能提升。 0x03 最大打开文件数 worker_rlimit_nofile 用于设置 Nginx 进程可以打开的最大文件数。通常设置为 ulimit -...

阅读全文>>

标签: nginx 性能优化笔记

评论(0) (175)

K8S环境下的Nacos应用优雅下线

2024-8-9 myluzh Kubernetes

0x01 Nacos心跳时间 Nacos心跳检测时间 Nacos 目前支持临时实例使用心跳上报方式维持活性,发送心跳的周期默认是 5 秒,Nacos 服务端会在 15 秒没收到心跳后将实例设置为不健康,  在 30 秒没收到心跳时将这个临时实例摘除(这里要注意30秒这个时间)。 0x02 Nacos下线应用接口  在Nacos OpenAPI:(https://nacos.io/zh-cn/docs/open-api.html )中有写明,可以通过/nacos/v1/ns/instance修改实例来完成应用下线,例如: curl -X PUT "http://172.30.233.87:8848/nacos/v1/ns/instance?serviceName=xfshcloud-dxp&clusterName=DEFAULT&groupName=DEFAULT_GROUP&ip=10.42.1.89&port=9208&ephemeral=true&weight=1&enabled=false&namespaceId=a9076f...

阅读全文>>

标签: k8s PreStop nacos

评论(0) (426)

K8S 中的优雅终止:确保服务平稳关闭

2024-8-2 myluzh Kubernetes

0x01 什么是优雅停止? 优雅终止是 Kubernetes 中一个非常重要的概念,它关系到服务的稳定性和用户体验。通过合理配置和使用 Kubernetes 提供的工具,我们可以确保应用在终止时能够做到尽可能的平滑和优雅,这不仅提升了系统的可靠性,也增强了用户对服务的信任。 优雅终止指在终止应用或服务时,确保当前正在进行的操作能够正常完成,同时避免新请求的进入,使得服务能够平稳地关闭。在 Kubernetes 中,这通常涉及到 Pod 的终止流程。 0x02 Pod 终止流程 1、Pod 状态变为 Terminating Pod 被删除,API 层面上 metadata.deletionTimestamp 字段会被标记上删除时间。 2、更新转发规则 kube-proxy 发现 Pod 被删除,开始更新转发规则,将 Pod 从 service 的 endpoint 列表中摘除掉,新流量不再转发到该 Pod。 3、销毁 Pod kubelet 发现 Pod 被删除,开始销毁 Pod。 执行 PreStop Hook:如果 Pod 中有配置 preStop Hook,Kubernetes 会执行这些命令。 ...

阅读全文>>

标签: k8s kubernetes 优雅停止 PreStop Readiness SIGTERM Liveness

评论(0) (453)

RouterOS v7 IPv6/IPv4双栈配置

2024-7-27 myluzh RouterOS

0x00 前置条件 光猫上配置IPv6/IPv4双栈设置,如果没有同样可以打电话让宽带运营商给远程修改光猫的IPv6\IPv4双栈桥接。目前很多运行商已经在光猫下发配置的之后已经默认开启了IPv6\IPv4双栈配置。 0x01 ROS开启IPv6 1、确认已经开启IPv6的Packages ROS低版本默认IPv6默认是关闭的,需要手动开启。System-Packages找到ipv6点击Enable开启。开启后左侧菜单就可以看到IPv6选项了。 在ROS7版本中,IPv6功能已经被集成到单个RouterOS包中,因此不再需要单独启用IPv6包。这意味着IPv6功能默认是可用的。 2、开启ipv6转发 [admin@HomeROS] > /ipv6/settings/set forward=yes 0x02 PPPOE开启IPv6 1、修改pppoe拨号的配置文件,支持ipv6 [admin@HomeROS] > /ppp/profile/ set default use-ipv6=yes 2、重新pppoe拨号,获取ipv6地址 [admin@HomeROS] > /interface/ disable p...

阅读全文>>

标签: routeros ros ipv4 ipv6 双栈

评论(0) (1368)