2025-3-11 myluzh Kubernetes
0x01 部署单节点emqx 1、部署yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: emqx namespace: base spec: serviceName: "emqx-headless" replicas: 1 selector: matchLabels: app: emqx template: metadata: labels: app: emqx spec: containers: - name: emqx image: 172.30.82.223:5443/base/emqx/emqx:4.4.1 ports: - containerPort: 1883 name: mqtt - containerPort: 8083 name: mqtt-ws - conta...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-2-26 myluzh Kubernetes
0x01 Nginx server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; location /ws/ { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; ...标签: k8s nginx ingress-nginx ws wss
2025-1-15 myluzh Kubernetes
使用场景 推荐方式 持久化存储(文件、数据库等) PVC 或 volumeClaimTemplates 配置和凭据管理 ConfigMap 和 Secret 临时数据存储 EmptyDir 访问主机文件 HostPath 动态云存储卷分配 CSI 0x01 PersistentVolumeClaim (PVC) 最通用的持久化存储方式。适用于绝大多数需要持久化数据的场景,例如数据库存储、文件共享。与各种存储插件兼容。 典型场景:数据库(MySQL、PostgreSQL、MongoDB)。 volumes: - name: app-data persis...2024-12-4 myluzh Kubernetes
0x01 前言 临时容器主要用于调试和排查问题。当 Pod 中的容器镜像很小,缺少常用工具(如 netstat、curl、ping 等)时,临时容器可以帮助你在不改变 Pod 原有配置的情况下,快速加载这些工具进行诊断。临时容器是独立于 Pod 主容器的,不会影响其运行,可以在需要时添加并删除,便于实时调试和故障排除。 0x02 使用临时容器debug 1、前置条件 (1)临时容器功能是在 Kubernetes v1.16 版本中引入的,确保自己的集群版本号支持:kubectl version --short (2)编辑 kube-apiserver 的配置文件,并添加 --feature-gates=EphemeralContainers=true,然后重启 API server。 要检查是否启用了 EphemeralContainers,你可以运行以下命令:kubectl api-resources | grep ephemeral 如果启用,该命令的输出将包含 ephemeralconta...