Myluzh Blog

K8S 部署单节点EMQX4

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...

阅读全文>>

标签: k8s emqx emqx4

评论(0) (99)

K8S 删除命名空间一直卡在Terminating解决方案(移除finalizers,强制删除命名空间)

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:移除命名...

阅读全文>>

标签: k8s kubernetes Namespace ns terminating finalizers

评论(0) (283)

RKE2部署高可用K8S集群

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

评论(0) (296)

在Nginx和Ingress-Nginx中配置WebSocket(WS/WSS)

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

评论(0) (155)

K8S 存储卷使用总结

2025-1-15 myluzh Kubernetes

使用场景 推荐方式 持久化存储(文件、数据库等) PVC 或 volumeClaimTemplates 配置和凭据管理 ConfigMap 和 Secret 临时数据存储 EmptyDir 访问主机文件 HostPath 动态云存储卷分配 CSI 0x01 PersistentVolumeClaim (PVC) 最通用的持久化存储方式。适用于绝大多数需要持久化数据的场景,例如数据库存储、文件共享。与各种存储插件兼容。 典型场景:数据库(MySQL、PostgreSQL、MongoDB)。 volumes: - name: app-data persis...

阅读全文>>

标签: k8s pvc csi

评论(0) (179)

K8S 使用临时容器(Ephemeral Containers)

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...

阅读全文>>

标签: k8s kubectl debug 临时容器 EphemeralContainers

评论(0) (288)