跳转至

安装排障

本页汇总了常见的安装问题及排障方案,便于用户快速解决安装及运行过程中遇到的问题。

UI 访问问题

DCE 5.0 界面打不开时,执行 diag.sh 脚本快速排障

安装器自 v0.12.0 版本之后新增了 diag.sh 脚本,方便用户在 DCE 5.0 界面打不开时快速排障。

执行命令:

./offline/diag.sh

执行结果示例:

FAQ1

使用 Metallb 时 VIP 访问不通导致 DCE 登录界面无法打开

  1. 排查 VIP 的地址是否和主机在同一个网段,Metallb L2 模式下需要确保在同一个网段
  2. 如果是在 Global 集群中的控制节点新增了网卡导致访问不通,需要手动配置 L2Advertisement。

    请参考 Metallb 这个问题的文档

火种节点问题

火种节点关机重启后,kind 集群无法正常重启

火种节点关机重启后,由于部署时在 openEuler 22.03 LTS SP2 操作系统上未设置 kind 集群开机自启动,会导致 kind 集群无法正常开启。

需要执行如下命令开启:

podman restart $(podman ps | grep installer-control-plane | awk '{print $1}') 

Note

如果其他环境中发生了上述场景,也可以执行该命令进行重启。

Ubuntu 20.04 作为火种机器部署时缺失 ip6tables

Ubuntu 20.04 作为火种机器部署,由于缺失 ip6tables 会导致部署过程中报错。

请参阅 Podman 已知问题

临时解决方案:手动安装 iptables,参考 Install and Use iptables on Ubuntu 22.04

禁用 IPv6 后安装时,火种节点 Podman 无法创建容器

报错信息如下:

ERROR: failed to create cluster: command "podman run --name kind-control-plane...

解决方案:重新启用 IPv6 或者更新火种节点底座为 Docker。

参阅 Podman 相关 Issue: podman 4.0 hangs indefinitely if ipv6 is disabled on system

火种节点 kind 容器重启后,kubelet 服务无法启动

kind 容器重启后,kubelet 服务无法启动,并报以下错误:

failed to initialize top level QOS containers: root container [kubelet kubepods] doesn't exist

解决方案:

  • 方案 1:重启,执行命令 podman restart [kind] --time 120,执行过程中不能通过 Ctrl+C 中断该任务

  • 方案 2:运行 podman exec 进入 kind 容器,执行以下命令:

    for i in $(systemctl list-unit-files --no-legend --no-pager -l | grep --color=never -o .*.slice | grep kubepod);
    do systemctl stop $i;
    done
    

如何卸载火种节点的数据

商业版部署后,如果进行卸载,除了本身的集群节点外,还需要对火种节点进行重置,重置步骤如下:

需要使用 sudo rm -rf 命令删除这三个目录:

  • /tmp
  • /var/lib/dce5/
  • /home/kind/etcd

证书问题

Global 集群的 kubeconfig 在火种的副本需要更新

v0.20.0 之前的版本中,火种机上存储的 Global 集群的 kubeconfig 不会自动更新,v0.20.0 版本支持了自动更新,每个月执行一次。

之前的版本需要将 dce5-installer 更新到 v0.20.0 然后执行:

dce5-installer cluster-create -c clusterconfig.yaml -m mainfest.yaml --update-global-kubeconf

火种节点的 kind 集群本身的证书更新以及 kubeconfig

v0.20.0 之前的版本中,火种机上存储的 kind 集群的 kubeconfig 不会自动更新,v0.20.0 版本支持了自动更新,每个月执行一次。

之前的版本需要将 dce5-installer 更新到 v0.20.0 然后执行:

dce5-installer cluster-create -c clusterconfig.yaml -m mainfest.yaml --update-kind-certs

Contour 安装后,证书默认有效期仅一年,且不会自动 renew,过期后导致 contour-envoy 组件不断重启

v0.21.0 之前的版本,支持启用安装 Contour 组件,后续版本将不再支持,对于之前版本并且安装了 Contour 的客户,需要执行 helm upgrade 命令来更新证书有效期:

helm upgrade  -n contour-system contour --reuse-values --set contour.contour.certgen.certificateLifetime=36500

操作系统相关问题

在 CentOS 7.6 安装时报错

FAQ1

在安装全局服务集群的每个节点上执行 modprobe br_netfilter,将 br_netfilter 加载之后就好了。

CentOS 环境准备问题

运行 yum install docker 时报错:

Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream                                                                    93  B/s |  38  B     00:00    
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

可以尝试下述方法来解决:

  • 安装 glibc-langpack-en

    sudo yum install -y glibc-langpack-en
    
  • 如果问题依然存在,尝试:

    sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
    sudo yum update -y
    

社区版问题

kind 集群重装 DCE 5.0 时 Redis 卡住

问题:Redis Pod 出现了 0/4 running 很久的情况,提示:primary ClusterIP can not unset

  1. mcamel-system 命名空间下删除 rfs-mcamel-common-redis

    kubectl delete svc rfs-mcamel-common-redis -n mcamel-system
    
  2. 然后重新执行安装命令

社区版 fluent-bit 安装失败

报错:

DaemonSet is not ready: insight-system/insight-agent-fluent-bit. 0 out of 2 expected pods are ready

排查 Pod 日志是否出现下述关键信息:

[warn] [net] getaddrinfo(host='mcamel-common-es-cluster-masters-es-http.mcamel-system.svc.cluster.local',errt11):Could not contact DNS servers

出现上述问题是一个 fluent-bit 的 bug,可以参考 aws/aws-for-fluent-bit 的一个 Issue: Seeing Timeout while contacting DNS servers with latest v2.19.1

评论