OpenShift虚拟化: 从Web控制台创建与访问虚拟机
1 | 作者:李晓辉 |
在Red Hat OpenShift里创建虚拟机(VM),主要有两种方法:一种是用OpenShift网页控制台里的虚拟机创建目录(Catalog),另一种是用YAML定义,这个YAML定义既可以在网页控制台里搞,也可以在命令行界面(CLI)里用文本编辑器搞定。
虚拟机创建
用OpenShift网页控制台里的目录来创建VM,那可真是快得很!为啥呢?因为里面有一大堆现成的模板和实例类型,Red Hat早就给你准备好了,比如Red Hat Enterprise Linux、CentOS、Fedora、微软Windows Server这些常见的操作系统模板。要是用默认模板,看到有“需要启动源”这个标签,那得自己定义一下启动源,不然机器不知道从哪儿开始启动。
用模板创建VM的时候,你可以根据自己的需求来调整各种参数,比如数据源、cloud-init(这个是用来初始化云服务器的)、SSH密钥,要是觉得硬盘不够用,还能再加几个。下面是一些关键点:
- 项目(Project):这就是VM待着的“家”,也就是命名空间。
- 虚拟机名字(Virtual Machine Name):给你的VM起个名字,在你的Red Hat OpenShift集群里得独一无二,方便你以后找它。
- 授权密钥和SSH访问(Authorized Key and SSH Access):这个决定了你的VM能不能通过SSH远程访问,要是能访问,还得把你的公钥拷贝到VM里的
~/.ssh/authorized_keys
文件里。要是开启了SSH访问,系统会自动在VM所在的命名空间里创建一个节点端口服务。要是想从集群外面通过SSH访问,那还得做点额外的配置。 - 创建后启动VM(Start this VM after creation):这个选项决定了你的VM创建好之后是自动开机,还是关机状态等着你手动开机。
你还可以从实例类型创建VM,不过这种方式下,你只能调整SSH密钥、cloud-init这些参数,或者添加新的存储卷。但是,你不能修改实例类型里已经定义好的可启动卷或者资源配置。
虚拟机模板(Virtual Machine Templates)
Red Hat提供了默认的模板,这些模板就像是一个通用的“配方”,里面包含了创建一个基本系统的各种设置,比如网络、用户、存储这些都预配置好了。这些默认模板能满足各种常见的需求。要是觉得默认模板不够个性,你完全可以动手改改,让它更符合你的需求。比如,你可以指定一个特定的启动源,再加点额外的存储,或者多弄几个网络接口,总之,想怎么改就怎么改。
你可以从网页控制台或者命令行界面(CLI)里创建模板。新模板一开始啥都没有,就像一张白纸,你可以往上面添加各种配置内容,打造出更专业的模板。一开始,你只能为现有的默认操作系统创建模板。不过,要是你在OpenShift集群里安装了KubeVirt common-templates包,那就能解锁更多操作系统,比如Ubuntu或者openSUSE,为它们创建模板。
YAML定义(YAML Definition)
要是不想用OpenShift目录创建VM,你还可以用YAML定义。这个方法也很灵活,你可以在网页控制台里定义YAML,也可以用文本编辑器在CLI里写。用YAML还能创建VM模板。不管是创建VM还是模板,网页控制台都会提供一个可编辑的默认YAML配置。YAML文件就像一本“秘籍”,把默认模板或者实例类型的所有设置都整合在一个结构化的文档里。你可以在一个地方调整标签、修改系统资源、定义基础镜像,还能修改高级选项,只要用YAML编辑器就行。
你还能用CLI里的oc edit
命令来编辑YAML配置。这个命令会把对象的YAML配置在你的默认文本编辑器里打开。你改好之后,保存一下YAML配置,集群就会自动把变化应用到资源上了。
虚拟机管理
每个虚拟机(VM)都有一个专门的管理页面,这个页面就像是VM的“小管家”,帮你把所有重要的信息和操作都集中在一个地方,方便得很!下面就是这个管理页面的三大亮点:
VM信息一目了然
在这个页面上,你可以看到关于VM的各种信息,比如它的名字、运行状态(是开机还是关机)、配置的资源(像CPU、内存这些),还有它属于哪个项目(就是VM的“家”)。这些信息都清清楚楚地列出来,让你随时都能了解VM的“健康状况”。直接访问VM的控制台
要是你想直接和VM“对话”,这个管理页面还提供了一个接口,让你能直接访问VM的控制台。这就像是给VM打了个“可视电话”,你可以直接看到VM的屏幕,进行各种操作,就像在本地操作一样方便。要是遇到什么问题,或者想直接在VM上运行一些命令,这个功能可就派上大用场了。操作控制,随心所欲
这个管理页面还提供了各种操作控制按钮,让你能轻松管理VM。比如:
- 开机/关机:想让VM开机或者关机,轻轻一点就行。
- 重启:要是VM运行得不太顺畅,重启一下说不定就能解决问题。
- 暂停/恢复:有时候你可能不想让VM完全关机,但又想让它暂时“休息”一下,暂停功能就很有用了。等你准备好,再恢复运行就行。
- 编辑配置:要是觉得VM的配置不太合适,比如想给它多加点内存,或者调整一下网络设置,也可以在这个页面上进行编辑。
从虚拟机(VM)的管理页面,点击“操作(Actions)”按钮,可以进行各种管理操作,比如启动和停止虚拟机。
下面的表格列出了虚拟机页面上可用的各个元素及其描述:
元素 | 描述 |
---|---|
概览(Overview) | 包含集群级别的虚拟机事件日志、虚拟机的基本信息、资源使用情况和状态信息。 |
概览 → 详细信息(Overview → Details) | 包含虚拟机各个组件的详细信息。 |
指标(Metrics) | 展示CPU和内存使用情况、存储指标、网络流量指标以及虚拟机迁移指标。 |
YAML | 提供一个接口,用于编辑虚拟机的YAML配置。 |
配置(Configuration) | 提供对配置子部分的访问。 |
配置 → 详细信息(Configuration → Details) | 列出虚拟机的详细信息。从这个标签页,你可以编辑虚拟机的描述、工作负载配置文件、CPU和内存、主机名、GPU和宿主机设备、启动模式以及磁盘的启动顺序。 |
配置 → 存储(Configuration → Storage) | 列出虚拟机使用的磁盘和文件系统。从这个标签页,你可以编辑、添加或删除虚拟机的磁盘,并查看虚拟机文件的详细信息。 |
配置 → 网络(Configuration → Network) | 包含连接到虚拟机的网络接口。你也可以使用这个标签页管理连接的网络接口。 |
配置 → 调度(Configuration → Scheduling) | 允许管理节点调度和资源需求,例如节点选择器规则、容忍规则和亲和性规则。还使用此部分管理虚拟机的节点迁移策略。 |
配置 → SSH(Configuration → SSH) | 允许你配置对虚拟机的SSH访问。从这个标签页,你可以编辑SSH服务类型和公钥。 |
配置 → 初始运行(Configuration → Initial run) | 管理cloud-init用户名和密码。cloud-init功能将用户添加到虚拟机的sudoers文件中,以授予用户sudo权限。使用此部分配置Windows虚拟机的Sysprep工具,以自动化设置和自定义软件配置。 |
配置 → 元数据(Configuration → Metadata) | 从这个标签页,你可以配置标签和注释。 |
事件(Events) | 包含详细且可定制的事件日志。 |
控制台(Console) | 提供串行和VNC控制台,以直接访问虚拟机。 |
快照(Snapshots) | 列出并管理虚拟机的快照。 |
诊断(Diagnostics) | 显示虚拟机的状态条件和卷快照状态。 |
你可以使用虚拟机的各个页面来对虚拟机进行更改和确认。例如,要增加或减少虚拟机的CPU和内存,前往“配置 → 详细信息(Configuration → Details)”以打开虚拟机详细信息页面。点击CPU | 内存部分中定义的值。
在虚拟机(VM)的管理页面上,调整CPU和内存其实是个很简单的事儿
调整完虚拟机(VM)的CPU和内存之后,确认一下新的设置是不是生效了
访问虚拟机
访问你的虚拟机(VM)有好几种方法,你可以根据自己的需求选择最方便的一种。下面就是两种常见的方法:
网页控制台访问虚拟机
步骤一:找到虚拟机
- 登录到你的Red Hat OpenShift网页控制台。
- 在左侧菜单里,找到“虚拟化(Virtualization)”选项,点击它。
- 在下拉菜单里,选择“虚拟机(VirtualMachines)”。
- 选择你想要访问的虚拟机所在的项目(Project)。
- 点击虚拟机的名字。
步骤二:进入控制台
- 在虚拟机的管理页面上,点击“控制台(Console)”标签页。
- 在这里,你可以选择两种控制台:
- VNC控制台:这个控制台允许你通过视频访问虚拟机,并进行图形化操作。你可以看到虚拟机的桌面,就像直接操作一样。
- 串行控制台(Serial Console):这个控制台提供了一个直接的串行连接,并且可以让你通过命令行界面(CLI)访问虚拟机。有时候,你可能需要按几次回车键,才能看到提示符。
小贴士:
- 如果你想在一个新窗口里打开VNC和串行控制台,可以点击“概览 → 详细信息(Overview → Details)”标签页里的“打开网页控制台(Open web console)”按钮。
命令行界面(CLI)访问虚拟机
步骤一:安装并登录
- 确保你已经安装了
virtctl
工具,这是一个用于管理和连接OpenShift或KubeVirt环境中虚拟机的客户端应用程序。 - 使用
oc login
命令登录到你的OpenShift集群。 - 使用
oc project vm-project-name
命令选择虚拟机所在的项目。
- 确保你已经安装了
步骤二:访问串行控制台
- 使用以下命令访问虚拟机的串行控制台:
1
virtctl console <vm-name>
- 串行控制台的退出字符是
Ctrl-]
,记得按这个组合键退出控制台。
- 使用以下命令访问虚拟机的串行控制台:
步骤三:访问VNC控制台
- 使用以下命令访问虚拟机的VNC控制台:
1
virtctl vnc <vm-name>
- 这个命令会在你的本地机器上打开一个VNC客户端,让你可以通过图形界面访问虚拟机。
- 使用以下命令访问虚拟机的VNC控制台:
小贴士
- 选择合适的方法:如果你只是想快速查看虚拟机的状态或者运行一些简单的命令,串行控制台可能是个不错的选择。如果你需要进行图形化操作,比如安装软件或者配置图形界面,VNC控制台会更方便。
- 安全第一:在访问虚拟机的时候,记得确保你的网络连接是安全的,特别是如果你是从集群外部访问的话。
其他VNC客户端
virtctl
工具默认调用remote-viewer
应用程序。在Linux上,virtctl
工具默认需要单独安装VNC客户端。你可以通过在virtctl vnc
命令中添加--proxy-only
标志来使用其他VNC客户端。
使用你选择的VNC应用程序提供的端口连接到你的虚拟机(VM)。一些其他流行的VNC应用程序包括TigerVNC和TightVNC。对于Windows虚拟机,你可以通过网页控制台使用桌面查看器和远程桌面协议(RDP)。必须安装RDP客户端,并且在Windows虚拟机上安装了QEMU guest agent。
注意:你必须断开VNC控制台会话才能使用桌面查看器。否则,VNC控制台会话将继续在后台运行。
基于角色的访问控制
OpenShift包含几个默认的集群角色,你可以将这些角色绑定到用户。下面的表格列出了一些默认的集群角色:
集群角色 | 用户或组可以执行的操作 |
---|---|
admin | 查看项目中的任何资源,并修改项目中的任何资源,但不能修改配额。 |
cluster-admin | 在任何项目中执行任何操作。 |
edit | 修改项目中的大多数对象,但不能查看或修改角色和绑定。 |
view | 查看项目中的大多数对象,但不能修改它们。用户和组不能查看或修改角色和绑定。 |
OpenShift Virtualization扩展了默认的集群角色,用于虚拟化资源。你可以使用这些角色来为用户授予对集群中虚拟化资源的权限。
集群角色 | OpenShift Virtualization集群角色 | 用户和组可以执行的操作 |
---|---|---|
view | kubevirt.io:view | 查看所有OpenShift Virtualization资源,但不能创建、删除、修改或访问这些资源。 |
edit | kubevirt.io:edit | 修改所有OpenShift Virtualization资源,但不能修改OpenShift Virtualization运行时配置。 |
admin | kubevirt.io:admin | 查看和修改所有OpenShift Virtualization资源,并且可以修改OpenShift Virtualization运行时配置。 |