商城
简体中文
  • 云原生容器产品
    • QKCP 企业级容器平台
    • KSV 虚拟化管理平台
    • KubeSphere 混合架构容器云
    • QKCP 容器一体机
    • 数据库(即将上线)
  • 云原生服务
    • 云原生备份容灾服务
  • 公有云容器服务
    • KubeSphere on AWS
    • KubeSphere on QingCloud
    • KubeSphere on Azure
    • KubeSphere on DigitalOcean
  • 技术支持服务
    • 全方位支持工单
    • 平台 Logo 定制

常见问题

汇总 KSV 平台的常见问题。

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

底层原理

KSV 的底层原理描述如下表所示:

名称描述
虚拟机KSV 底层使用 KubeVirt 插件,支持对虚拟机的生命周期管理、状态管理和连接管理。
网络KSV 底层使用 Multus 插件,在节点网卡上创建 MacVTap(用于简化虚拟化桥接网络的设备驱动程序)作为虚拟机的网卡。通过设置 IP 池,虚拟机可以与服务器节点在同一个网段中,方便用户的访问。
镜像KSV 底层使用 CDI 插件将镜像导入到持久卷中,通过持久卷的克隆实现系统盘创建。
存储KSV 支持与 Kubernetes 的 CSI 插件联动,实现存储相关资源的管理。

问题排查

安装 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 即可。

如何重置用户密码?

  1. 登录服务器节点。

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

    kubectl patch users <用户名> -p '{"spec":{"password":"<新的密码>"}}' --type='merge' && kubectl annotate users <用户名> iam.kubesphere.io/password-encrypted-

    common:NOTE

    • 您需要将命令中的<用户名>参数替换为实际的用户名,将<新的密码>参数修改为新的密码。
    • 建议在新的密码中包含数字、大写字母和小写字母,长度设置为 6 至 64 个字符。

如何创建 IP 池?

以下视频演示如何在 KSV Web 控制台创建 IP 池:

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

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

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

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

可能原因解决方法
虚拟机 CPU 或内存参数设置过大,导致虚拟机调度失败。您可以删除虚拟机,并在重新创建虚拟机时降低 CPU 或内存大小。
某些服务器节点不支持虚拟化。使用 root 用户登录任意服务器节点,执行 grep -E '(svm|vmx)' /proc/cpuinfo 命令,若无回显则不支持虚拟化。
选择的 IP 池与实际环境不符合,导致虚拟机调度失败。预置的 IP 池所设置的网卡名为 eth0,如果机器网卡名称不同,则需要重新创建 IP 池,并设置物理网卡为服务器节点的实际网卡名。在创建虚拟机时选择正确的 IP 池。

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

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

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

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

操作步骤

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

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

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

    ftp <节点 IP 地址>

    common:NOTE

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

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

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

    put <本地镜像文件路径>

    例如:

    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 的 IP 池中使用网卡 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