2025-7-11 myluzh Kubernetes
1、部署redis exporter apiVersion: apps/v1 kind: Deployment metadata: name: redis-exporter namespace: base labels: app: redis-exporter spec: replicas: 1 selector: matchLabels: app: redis-exporter template: metadata: labels: app: redis-exporter spec: containers: - name: redis-exporter image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/oliver006/redis_exporter:v1.72.1 args: - -redis.addr=redis://redis....标签: k8s kubernetes redis exporter
2025-7-2 myluzh Kubernetes
0X01 前言 这边有个测试集群,k8s版本是1.21,经过测试需要安装兼容v1alpha2的cert-manager,然后opentelemetry-operator最高版本是0.34.0。 0x02 安装 OpenTelemetry Operator # 安装 cert-manager(兼容v1alpha2) wget -O cert-manager-v0.16.1.yaml https://github.com/cert-manager/cert-manager/releases/download/v0.16.1/cert-manager.yaml kubectl apply -f cert-manager-v0.16.1.yaml kubectl get pod -n cert-manager # 安装 opentelemetry-operator wget -O opentelemetry-operator-v0.34.0.yaml https://github.com/open-telemetry/opentelemetry-operator/releases/downl...标签: k8s kubernetes OpenTelemetry 观测
2025-5-9 myluzh Kubernetes
0x01 介绍 github地址:https://github.com/OT-CONTAINER-KIT/redis-operator 通过redis-operater支持以下方式部署: RedisCluster 适用于需要高可用性和数据分片的场景,适合大规模部署。 RedisReplication 适合需要读写分离的场景,提供主从复制和负载均衡。 RedisSentinel 适合需要高可用性和自动故障转移的场景,提供监控和故障恢复能力。 Redis 适合简单的单实例部署,用于开发、测试或小型应用。 注意:要使用opstree/redis:xxx镜像,不能用redis官方镜像,要不然有问题。https://quay.io/repository/opstree/redis?tab=tags 0x02 部署redis-operator helm在线部署 helm repo add ot-helm https://ot-container-kit.github.io/helm-charts/ helm upgrade redis-operator ot-helm/redis-operator \ --i...标签: k8s kubernetes helm redis rediscluster redisreplication redissentinel ot ot-redis-operator
2025-3-5 myluzh Kubernetes
0x01 前言 Kubernetes 命名空间一直处于 Terminating 状态,无法删除。 通常是由于该命名空间中的资源对象被设置了终结器(finalizers)。终结器是一种机制,用于确保某些操作在对象被删除之前完成。例如,某些控制器可能会设置终结器以确保在删除命名空间之前清理相关资源或执行特定的清理逻辑。如果这些清理任务未完成或者出现了错误,命名空间将一直保持在“Terminating”状态。 0x02 解决方案 方案1:排查并解决阻塞资源问题 命名空间无法删除是因为其中包含了一些特殊的资源(如自定义资源定义CRD、持久卷声明PVC等),这些资源的存在阻止了命名空间的删除过程。检查命名空间下的所有资源:根据输出结果逐一排查是否有异常资源未被正确清理,并采取相应措施(如手动删除资源)。 # 列出指定命名空间中所有类型的资源 kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -n <namespace> 方案2:移除命名...2025-3-4 myluzh Kubernetes
0x01 前言 rke2部署k8s集群,主机是2台master2台worker,系统用的是Ubuntu24.04 LTS,ansible清单如下: 必须以 root 用户或通过 sudo 执行 RKE2 安装。https://docs.rke2.io/zh/install/quickstart # inventory [all:vars] ansible_user=root ansible_password='Testtest01.' ansible_python_interpreter=/usr/bin/python3.12 [k8s_master] k8s-master01 ansible_host=172.17.100.181 k8s-master02 ansible_host=172.17.100.182 k8s-master03 ansible_host=172.17.100.183 [k8s_worker] k8s-worker01 ansible_host=172.17.100.186 k8s-worker02 ansible_host=172.17.100.187 [...标签: kubernetes rancher rke2
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 ...