You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群部署Couchbase Server失败(Memcached相关问题)

排查Kind(Podman)集群中Couchbase Server启动失败问题

问题重现

部署配置(couchbase-cluster.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchbase
  labels:
    app: couchbase
    env: dev
spec:
  replicas: 1
  selector:
    matchLabels:
      app: couchbase
      env: dev
  template:
    metadata:
      labels:
        app: couchbase
        env: dev
    spec:
      containers:
      - name: couchbase
        image: couchbase/server:enterprise-7.2.5
        imagePullPolicy: IfNotPresent
        ports:
        - name: first
          containerPort: 8091
        - name: second
          containerPort: 8092
        - name: third
          containerPort: 8093
        - name: forth
          containerPort: 8094
        - name: fifth
          containerPort: 8085
        - name: last
          containerPort: 11210

Pod状态

执行kubectl apply -f couchbase-cluster.yaml后,Pod显示Running但服务未正常启动:

NAME                         READY   STATUS    RESTARTS   AGE
couchbase-597ddbf7b9-bhwjl   1/1     Running   0          93s

核心错误日志

从memcached.log中发现致命启动错误:

2024-05-18T21:33:21.715214+00:00 WARNING Failed to create audit thread
2024-05-18T21:33:21.715239+00:00 CRITICAL FATAL: Failed to start audit daemon
2024-05-18T21:33:21.715706+00:00 INFO ---------- Closing logfile

该错误引发连锁问题:

  • couchbase.log:组件无法连接memcached
  • error.log:无法推送TLS配置到memcached,Prometheus配置服务终止

问题分析

核心原因是Couchbase的审计守护进程(audit daemon)需要Linux内核的AUDIT_WRITE权限,而Kubernetes默认容器未分配该权限,导致memcached启动失败,进而整个Couchbase服务无法正常运行。

解决方案

方案1:给容器添加必要权限(推荐)

修改Deployment的容器配置,添加securityContext字段授予AUDIT_WRITE能力:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: couchbase
  labels:
    app: couchbase
    env: dev
spec:
  replicas: 1
  selector:
    matchLabels:
      app: couchbase
      env: dev
  template:
    metadata:
      labels:
        app: couchbase
        env: dev
    spec:
      containers:
      - name: couchbase
        image: couchbase/server:enterprise-7.2.5
        imagePullPolicy: IfNotPresent
        securityContext:
          capabilities:
            add: ["AUDIT_WRITE"]
        ports:
        - name: first
          containerPort: 8091
        - name: second
          containerPort: 8092
        - name: third
          containerPort: 8093
        - name: forth
          containerPort: 8094
        - name: fifth
          containerPort: 8085
        - name: last
          containerPort: 11210

重新应用配置并重启Pod:

kubectl apply -f couchbase-cluster.yaml
kubectl rollout restart deployment couchbase

方案2:临时禁用审计守护进程(仅测试环境)

若为测试场景,可通过启动参数跳过审计守护进程:

containers:
- name: couchbase
  image: couchbase/server:enterprise-7.2.5
  command: ["/entrypoint.sh", "--no-audit-daemon"]
  # 其他配置保持不变

方案3:改用Couchbase官方Operator(生产环境推荐)

Couchbase是有状态应用,官方Operator会自动处理权限、网络、持久化等复杂配置,更适配生产级部署需求。

验证

重启Pod后,检查memcached日志确认无致命错误:

kubectl exec -it <pod-name> -- cat /opt/couchbase/var/lib/couchbase/logs/memcached.log

通过端口转发访问Web UI:

kubectl port-forward <pod-name> 8091:8091

访问http://localhost:8091即可进入集群配置界面。

内容的提问来源于stack exchange,提问作者NSN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:38:10