• 云原生服务云原生服务
    • 云原生备份容灾服务hot
    • 轻量集群服务new
    • 集群巡检服务new

常见问题

汇总 KSV 平台的常见问题。

本节汇总 KSV 云原生虚拟化(KSV)平台的常见问题。

安装 KSV 时,OpenSSL 出现报错信息该如何处理?

问题描述

安装 KSV 时,OpenSSL 出现如下报错信息:

error: openssl: /usr/lib/x86_64-linux-gnu/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by openssl) openssl: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: version `OPENSSL_1_1_1' not found (required by openssl) : exit status 1

此问题是由于系统软件版本过低导致。

解决方案

执行命令 apt updateapt upgrade 更新系统软件包,更新完成后重新安装 KSV 即可。

安装 KSV 时,磁盘出现报错信息该如何处理?

问题描述

安装 KSV 时,磁盘出现报错信息,导致 KSV 安装失败。

解决方案

  1. 执行以下脚本,清理 Ceph 磁盘:

    DISK="/dev/sdX" \# Zap the disk to a fresh, usable state (zap-all is important, b/c MBR has to be clean) sgdisk --zap-all $DISK \# Wipe a large portion of the beginning of the disk to remove more LVM metadata that may be present dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync \# SSDs may be better cleaned with blkdiscard instead of dd blkdiscard $DISK \# Inform the OS of partition table changes partprobe $DISK
  2. 脚本执行完成后,重新安装 KSV。

安装 KSV 时,CoreDNS 无法正常运行该如何处理?

问题描述

安装 KSV 时,CoreDNS 运行出错,不处于 Running 状态。

解决方案

  1. 执行 kubectl get pod -n kube-system 查看 CoreDNS 的状态。若 CoreDNS 的状态不是 Running,则需要修改 CoreDNS 的配置。

  2. 执行 kubectl edit cm -n kube-system coredns 修改 CoreDNS 的配置。

  3. 将配置项 forward . /etc/resolv.conf 修改为 forward .8.8.8.8。修改完成后,保存并退出。

  4. 执行 kubectl rollout restart deploy -n kube-system coredns 重启 CoreDNS。

安装 KSV 时,进度流程卡在 MinIO 该如何处理?

问题描述

安装流程卡在 MinIO,导致 KSV 安装失败。本问题一般是由于 CoreDNS 或存储异常导致,可检查环境中 CoreDNS 和存储的状态进行问题排查。请注意,存储系统应该为裸设备或裸分区,即未分区或未格式化的存储系统。

解决方案

  1. 执行 ksv logs 查看日志信息。若是由于 MinIO 导致的安装失败,会返回如下信息:

    1. check the storage configuration and storage server 2. make sure the DNS address in /etc/resolv.conf is available 3. execute 'kubectl logs -n kubesphere-system -l job-name=minio-make-bucket-job' to watch logs 4. execute 'helm -n kubesphere-system uninstall ks-minio && kubectl -n kubesphere-system delete job minio-make-bucket-job' 5. Restart the installer pod in kubesphere-system namespace
  2. 检查 CoreDNS 状态。若 CoreDNS 状态异常,可参考 安装 KSV 时,CoreDNS 无法正常运行该如何处理 进行问题排查。

  3. 检查存储状态。若存储状态异常,执行以下操作进行问题排查:

  4. 执行 kubectl get pod -n rook-ceph 查看 Ceph 组件状态。

  5. 检查是否存在 rook-ceph-osd-x-xxxxx 相关的 pod。若存在,检查 pod 是否处于 Running 状态。

  6. 若上述步骤中不存在处于 Running 状态的 pod,请确定服务器是否为 Ceph 预留了未格式化的磁盘。

  7. 如果存在满足上述要求的磁盘,执行安装注意事项中的脚本对磁盘进行清理。磁盘清理完成后,重启服务器。

安装 KSV 时,为什么提示服务器不支持虚拟化?

问题描述

安装 KSV 时,系统返回如下信息,提示安装程序未识别到服务器虚拟化支持:

Some nodes do not support virtualization. KSV will run in emulation mode. The emulation mode may occupy more resources and may affect performance.

目前发现某些国产 ARM64 CPU 服务器无法识别服务器虚拟化,但其虚拟化是正常且可使用的。由于安装时开启的是模拟虚拟化,导致创建虚拟机失败。

解决方案

  1. 编辑集群配置文件 kubectl edit cc -n kubesphere-system ks-installer,将配置 spec.virtualization 中的 useEmulation 设置为 false

  2. 保存并退出,查看日志,等待运行完成即可。

如何重置用户密码?

  1. 登录安装了 KSV 的服务器节点。

  2. 执行以下命令重置用户的密码:

    kubectl patch users <username> -p '{"spec":{"password":"<new password>"}}' --type='merge' && kubectl annotate users <username> iam.kubesphere.io/password-encrypted-

    common:NOTE

    • 您需要将命令中的 <username> 参数替换为实际的用户名,将 <new password> 参数修改为新的密码。

    • 建议在新的密码中包含数字、大写字母和小写字母,长度设置为 6 至 64 个字符。

为什么虚拟机状态消息一直显示为等待资源中?

等待资源中意味着系统正在等待创建虚拟机所需的资源。您可以查看对应的磁盘是否创建成功。磁盘创建失败通常是因为设置的容量过大,这时可以删除虚拟机,在重新创建虚拟机时降低磁盘容量大小。

为什么虚拟机状态消息一直显示为调度错误?

调度错误意味着虚拟机调度失败,可能原因及解决方法如下:

可能原因解决方法
虚拟机 CPU 或内存参数设置过大,导致虚拟机调度失败。
您可以删除虚拟机,并在重新创建虚拟机时降低 CPU 或内存大小。
某些服务器节点不支持虚拟化。
使用 root 用户登录任意服务器节点,执行 grep -E '(svm|vmx)' /proc/cpuinfo 命令,若无回显则不支持虚拟化。

KSV 支持上传哪些格式的镜像文件?

KSV 支持上传 IMG、QCOW2、XZ、TAR、GZ、ISO 和 RAW 格式的镜像文件。如果服务器节点有外部访问权限,也支持 HTTP 方式上传镜像文件。

镜像文件较大时,可以使用其他方式上传吗?

KSV 支持从本地或通过 URL 上传镜像。当镜像文件较大时,也支持 FTP 上传。

解决方案

  1. root 用户登录集群中的任意服务器节点。

  2. 执行以下命令获取 FTP 登录的用户名和密码:

    ksv ftp-server
  3. 执行以下命令 FTP 连接集群中的任意服务器节点:

    ftp <node ip address>

    common:NOTE

    您需要将 <node IP address> 替换为您自己的服务器节点的 IP 地址。

  4. 使用步骤 2 返回的用户名和密码登录 FTP 服务器。

  5. 执行以下命令将本地镜像文件上传到 FTP 服务器:

    put <local image path>

    common:NOTE

    您需要将 <local image path> 替换为实际的本地镜像文件路径。

    例如:

    put /pitrix/img/ubuntu_16.04_LTS_server-cloudimg-amd64.img
  6. 在 KSV Web 控制台的上传镜像页面,通过 URL http://minio.kubesphere-system.svc:9000/qingcloud-images/ubuntu_16.04_LTS_server-cloudimg-amd64.img 上传镜像。

    common:NOTE

    您需要将 ubuntu_16.04_LTS_server-cloudimg-amd64.img 替换为将要上传的镜像文件名称。

为什么挂载的磁盘没有生效?

对于单独创建的磁盘,第一次进行动态挂载时,需要重启虚拟机才能生效。后续的热插拔则无须重启虚拟机。

KSV 平台能否对接第三方存储?

可以对接。第三方的存储服务器需要支持 CSI 接口,若支持 CSI 接口,青云可以根据第三方的 CSI 接口规则进行适配和测试。

如何设置统一的外网出口?

操作场景

在多节点集群中,只开放了一台节点服务器用于外网访问,其他节点服务器上的虚拟机需要通过已开放外网的节点服务器访问外网。

原理说明

已开放外网的节点服务器有两张网卡(例如,网卡 A网卡 B),网卡 A 只连接内网。在 KSV 中使用网卡 A 创建内网网络,通过以下命令将内网的 IP 地址转换为网卡 B 的 IP 地址用于外网访问。

解决方案

  1. 使用 root 用户登录已开放外网的节点服务器。

  2. 执行以下命令:

    iptables -t nat -A POSTROUTING -s <内网网段> -o <网卡 b 名称> -j MASQUERADE

    您需要将<内网网段><网卡 B 名称>替换为您自己的网段和网卡名称,例如:

    iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eno2 -j MASQUERADE
  3. 登录需要访问外网的节点服务器,执行以下命令:

    ip r add default via <内网地址>

    您需要将<内网地址>替换为已开放外网访问的节点服务器的内网 IP 地址,例如:

    ip r add default via 192.168.0.1