运维监控
Host服务问题
宿主机安装Host服务完成后,默认处于禁用状态,需要启用后使用。宿主机启用方法如下:
在云管平台的宿主机列表中启用该宿主机;
在控制节点使用climc命令启用该宿主机;
$ climc host-enable id
Host服务为什么会变成离线?
region的HostPingDetectionTask将超过3分钟未收到ping的host服务置为offline,并将宿主机上的虚拟机状态设置为unknown。
宿主机的Host服务启动失败,且报错“Fail to get network info:no networks”,该怎么解决?
该问题一般是没有为宿主机注册网络,需要在云管平台为宿主机创建一个IP子网或使用Climc命令在控制节点创建一个网络。
$ climc network-create bcast0 host02 10.168.222.226 10.168.222.226 24 --gateway 10.168.222.1
如何解决qemu版本不匹配的问题?
现象:使用过程中,启动虚拟机时可能遇到类似这样的错误信息:
uses a qcow2 feature which is not supported by this qemu version: QCOW version 3
原因:主要原因是qcow版本不一致。原始的qcow2创建版本使用的qemu-img为较新版本,现在创建时使用的为较旧版本,旧版本不支持新版本。
解决方案:在拥有较新版本的qemu-img里面进行兼容性转换,例如执行以下命令进行转换,转换完毕后,再重新添加镜像:
$ qemu-img convert -o compat=0.10 -f qcow2 -O qcow2 centos6-cloud-init.qcow2 centos-st-ssh-key.qcow2
如何将其它KVM平台上的虚拟机迁移到系统中?
- 通过libvirt导出虚拟机的镜像(.qcow2文件)。
- 将镜像上传至一个http服务器中。
- 使用Cloudpods镜像服务器导入镜像。
- 通过镜像创建虚拟机。
- 若原来的虚拟机挂载了云硬盘,可按照以下方式迁移:
- 与上述操作类似,需要先将数据盘生成镜像,同理导入,Cloudpods使用该镜像创建数据 云盘,再将云硬盘挂载到虚拟机即可。
- 先在Cloudpods中创建一个相同大小的云硬盘,找到对应的路径,将原云盘数据直接复 制到新的路径下,最后再挂载到虚拟机上。
如何检查一台虚拟机或宿主机是否支持硬件虚拟化?
在终端中执行egrep “vmx|svm” /proc/cpuinfo命令,如果有输出代表支持硬件虚拟化。ESXi主机和WIndows系统不支持该命令。
机房准备断电维护,上电后如何自动恢复虚拟机的业务?
当机房需要断电维护时,Cloudpods平台无需任何配置即可实现服务器上电后可以自动恢复虚拟机业务。
在Windows系统的Outlook客户端接收的验证邮件或告警邮件乱码,没有样式,该怎么解决?
现象
原因
该问题是由于Outlook客户端设置了“以纯文本格式读取所有标准邮件”,导致html样式的邮件被转换成了文本消息,没有了样式。
解决方法
在“Outlook客户端->文件->选项->信任中心->信任中心设置->电子邮件安全性”中取消勾选“以纯文本格式读取所有标准邮件”。
如何查看系统中常用组件以及常用组件的日志?
Cloudpods容器化部署后可通过Kubernetes相关命令查看Cloudpods平台中的系统组件以及组件日志等。
查看组件pod运行情况
系统组件都以 k8s pod的形式运行,通过以下命令查看Cloudpods平台的系统组件以及运行情况等。
# -n表示namespace的意思,目前我们的服务都部署在onecloud namespace下,查看所有组件的pod的运行情况
$ kubectl get pods -n onecloud
# -o wide查看pod的更多详细信息,比如运行在哪个节点上
$ kubectl get pods -n onecloud -o wide
# 查看指定pod资源的详细信息,如查看region组件的pod的详细信息
$ kubectl describe pods -n onecloud default-region-759b4bff4c-hpmdd
# 查看指定主机上运行的所有pod信息
$ kubectl get pods -n onecloud -o wide --field-selector=spec.nodeName=<host-name>
重启服务
在Kubernetes集群上,组件pods大部分通过deployment管理的,当删除pod时将会自动重建新的pod,所以重启组件服务时可以直接删除对应组件的pod。
# 重启web服务,如删除web前端pod
$ kubectl delete pods $web_pod_name -n onecloud
# 重启host服务,如删除所有host pod
$ kubectl get pods -n onecloud -o wide | grep default-host | awk '{print #1}' | xargs kubectl delete pods -n onecloud
# 重启所有服务,服务都以default开头
$ kubectl get pods -n onecloud |grep default | awk '{print $1}' | xargs kubectl delete pods -n onecloud
更新服务配置并重启服务
Cloudpods的所有组件服务都有对应的Configmaps文件保存服务配置,当配置信息需要更改时,可通过以下步骤更新服务配置并使其生效。
# 以region服务为例更新其configmaps配置信息
$ kubectl edit configmaps default-region -n onecloud
# 修改完成后,删除对应服务的pod即可生效
$ kubectl get pods -n onecloud |grep region
$ kubectl delete $region_pod_name -n onecloud
查看服务日志
以region组件为例介绍如何查看region组件的日志信息。
# 首先需要找到region服务所在pod
$ kubectl get pods -n onecloud |grep region
# 查看region服务容器的日志,其中-f表示follow,即持续输出日志,类似于journalctl的 -f;--since 5m 表示查看近5分钟的日志信息。按CTRL+C退出日志输出
$ kubectl logs -n onecloud $region_pod_name -f --since 5m
# 查看region容器日志,将最近5分钟的所有日志到region.log
$ kubectl logs -n onecloud $region_pod_name --since 5m > region.log
# 若有些服务有两个容器,如host服务有名称为host和host-image的容器,此时查看容器命令时需要加'-c' 指定查看哪个容器的日志
$ kubectl logs -n onecloud $host_pod_name -c host-image -f
其它常用管理命令
kubectl更多命令请参考kubectl官方文档
查看平台版本信息
# 其中onecloudcluster 可以简写成oc;default为OneCloudCluster的名称;
$ kubectl get oc -n onecloud default -o go-template --template='{{printf "%s\n" .spec.version}}'
查看MySQL信息
# 查看MySQL的配置连接新,其中oc为onecloudcluster;default为oc的名称;grep -A 4即属于匹配后4行数据。
$ kubectl get oc -n onecloud default -o yaml | grep -A 4 mysql
查看OC的的API对象信息
# 查看OC的运行情况
$ kubectl get onecloudcluster -n onecloud
# 以yaml文件的形式查看OC的API对象信息,该信息中包含集群的所有配置信息。
$ kubeclt get oc -n onecloud -o yaml
部署管理工具ocadm的常用管理命令
部署管理工具ocadm类似于Kubernetes集群中的kubeadm工具。
# 创建集群
$ ocadm cluster create
# 查看集群认证信息
$ ocadm cluster rcadmin
# 将本地镜像源切换到阿里云镜像源
$ ocadm cluster update --image-repository registry.cn-beijing.aliyuncs.com/yunionio --wait
# 将产品升级或回滚到指定版本,当系统镜像源为阿里云镜像源的情况下才可以使用下面的命令升级
$ ocadm cluster update --version $version
# 禁用节点的host服务
$ ocadm node disable-host-agent --node $node_name
# 启用节点的host服务
$ ocadm node enable-host-agent --node $node_name
# 禁用节点的controller服务
$ ocadm node disable-onecloud-controller --node $node_name
# 启用节点的controller服务
$ ocadm node enable-onecloud-controller --node $node_name
# 禁用Baremetal服务
$ ocadm baremetal disable --node $node_name
# 如在node1主机上启用baremetal服务,并监听br0网卡。
$ ocadm baremetal enable --node node1 --listen-interface br0
# 在First Node节点获取加入节点的token信息
$ ocadm token create
# 在First Node查看token信息
$ ocadm token list
# 切换到开源版前端,ce(community edition)为开源版前端;
$ ocadm cluster update --use-ce --wait
# 切换到商业版前端,ee(enterprise edition)为商业版前端
$ ocadm cluster update --use-ee --wait
# 启用itsm组件
$ ocadm component enable itsm
# 禁用itsm组件
$ ocadm component disable itsm
# 安装失败时清理环境,请谨慎使用该命令
$ ocadm reset --force
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.