快速部署一朵 Apache CloudStack 云 (二)
部署一朵pache CloudStack 云
安装Apache CloudStack的云内管理服务组件
本部分我们将安装Apache CloudStack的云内管理服务组件及周边工具。
关于数据库的安装与配置:
我们会安装和配置MySQL并配置它与Apache CloudStack协同工作。由于CentOS-7.9中不再提供MySQL的二进制安装包,因此我们需要使用社区版的MySQL软件仓库安装MySQL-server:
【注意:本文档编写时使用了MySQL 的 version 5】
MySQL-server安装完毕后,我们需要修改配置文件 /etc/my.cnf ,在"[mysqld]"一节中添加如下内容:
【注意:Ubuntu 16 及以后的版本中,需要给MySQL-server的配置文件设置唯一的"server-id"】
现在我们可以启用MySQL-server了:
关于访问MySQL-server所需的Python连接驱动程序:
执行"yum -y install mysql-connector-python"安装访问MySQL-server的Python驱动。由于Apache CloudStack云管理程序中集成了访问MySQL-server所需的java驱动,因此不必单独安装mysql-connector-java了。
关于Apache CloudStack云管理程序:
执行"yum -y install cloudstack-management"以安装Apache CloudStack云管理服务程序。Apache CloudStack version 4.19依赖Java 11版本的java运行环境。尽管安装Apache CloudStack云管理服务程序时Java 11会被一起安装,但最好是把Java 11 设定为活跃JRE------尤其是在宿主机上有多个版本的Java环境时。执行"alternatives --config java"可以选定目标Java版本。
Java运行环境设定完毕后,接下来要初始化数据库了,当以下命令执行结束后会出现提示信息"CloudStack has successfully initialized the database.":
现在数据库初始化结束了,我执行以下命令来完成设定Apache CloudStack云管理服务程序的最后一步:
关于系统级虚拟机的模板:
Apache CloudStack会使用一批系统级虚拟机来提供诸如接入虚拟机实例控制台、网络服务、存储管理等功能。我们需要下载系统级虚拟机模板、并放置到辅助存储上。一般我们会使用NFS-server上已经为我们创建好的本地挂载路径"/export/secondary",否则就需要把辅助存储挂载到一个临时挂载点进行使用、而不是直接使用路径"/export/secondary":
关于虚拟化引擎 KVM :
在本手册中,我们的Apache CloudStack 管理节点同时也承担了计算节点的角色,这就意味着设置计算节点的一些操作已经被我们在设置管理节点时提前执行了。但我们仍需要清除设置计算节点的完整步骤,它们是:设定宿主机网络、设定宿主机的主机名、关闭安全强化Linux、配置始终同步服务的客户端、配置Apache CloudStack的安装包仓库。
KVM-agent的安装是普通而平凡的,仅需一条命令。但是安装之后我们需要配置一些内容(主要是针对libvirt和QEMU)。KVM-agent的安装命令如下:
关于配置KVM:
我们需要配置的是libvirt和QEMU这两个部分。
我么需要使用QEMU VNC功能,因此需要在配置文件/etc/libvirt/qemu.conf中启用"vnc_listen=0.0.0.0"这行配置。
Apache CloudStack使用libvirt来管理虚拟机实例,为进一步熟悉通用要求,我们推荐执行以下配置内容。为了实现虚拟机实例的热迁移,libvirt监听了非安全型TCP连接。我们还需要关闭libvirt使用多播DNS广告的尝试。为此我们需要修改配置文件 /etc/libvirt/libvirtd.conf 中的如下内容:
而后在配置文件/etc/sysconfig/libvirtd启用"LIBVIRTD_ARGS="--listen"",并重启libvirtd。为完整起见,通过执行"lsmod | grep kvm"确认KVM的配置结果。
至此,KVM的安装和配置就结束了,接下来要通过Apache CloudStack的web-Portal来配置"Apache CloudStack云"了。
关于Apache CloudStack云的配置:
通过浏览器访问Apache CloudStack云的web-Portal(本例中使用http://172.16.10.2:8080/client),默认账户是"admin"、默认密码是"password"。
专职地带(zone)是Apache CloudStack中的第二大被管理实体(第一大被管理实体是统辖区域【region】),我们首先要创建一个专职地带。在本例中,我们会创建一个高级别的专职地带,允许我们同时访问云内管理网和云外公网(通过给云内管理网和云外公网使用同一个CIDR地址块的不同范围实现)需要明确的是,这种网络规划千万不要在业务生产环境中使用、仅限于在概念验证环境中使用。在Apache CloudStack云的web-Portal中点击"继续安装"并更改登录密码。此时会弹出一个专职地带创建向导,选择"高级"并点击"下一步"。
专职地带配置详情:
在这个页面上,我们需要填入DNS服务器所在信息。Apache CloudStack可以区分内网DNS服务器和公网DNS服务器。内网DNS服务器被假定为仅能够解析内网的主机名,而公网DNS服务器对云内虚拟机实例提供了公网IP地址解析能力。Apache CloudStack允许同一个DNS服务器同时承担内网DNS服务器和公网DNS服务器角色,㘝这么做,必须确保云内网IP和公网IP皆可被路由到此DNS服务器。在我们的特定规划中,我们不为云内资源设定任何域名解析------尽管我们的确会把云内资源设定为看起来像云外的资源那样,因此我们也不会再这个规划中添加一个DNS服务器。
- Name------一般设定为一个永久性的描述名称,例如"zone1"或"ZhongtianDataCenter"
- IPv4 DNS 1 ------这是对公网的DNS服务器,可以设定为"114.114.114.114"
- IPv4 DNS 2------这是对公网的DNS服务器,可以设定为"8.8.8.8"
- Internal DNS1 ------这是对云内的DNS服务器,基于我们同一个CIDR网络的基本设定,这里可以填写成公网中的DNS服务器,例如"114.114.114.114"
- Internal DNS 2------这是对云内的DNS服务器,基于我们同一个CIDR网络的基本设定,这里可以填写成公网中的DNS服务器,例如"8.8.8.8"
- Hypervisor ------在本专职地带中药使用的虚拟化引擎,例如"KVM"
关于实体网路:
Apache CloudStack支持多种网络隔离方式。默认的VLAN格式方式已经能很好满足我们的需求了。为了提升网路性能和网路安全性,Apache CloudStack允许不同的网路流量跑在特定的专用网卡上(这种专用网卡是添加到虚拟化引擎宿主机上的)。在我们的特定规划中,我们不做任何改变,使用默认设置。
关于公网网路流量:
在Apache CloudStack部署过程中,可被公开访问的IP必须被分配。然而,由于我们是在特定规划中部署Apache CloudStack,因此我们会使用CIDR地址块的一部分填写在此处。
- Gateway------你的实体网路的网络关口,此处我们使用本规划中的CIDR地址块网络关口"192.168.136.2"(和本规划中的宿主机使用相同的网络关口)
- Netmask ------你的实体网路的网络掩码,此处我们使用本规划中的CIDR地址块网络掩码"255.255.255.0"
- VLAN/VNI ------你的实体网路中的VLAN信息,在我们的本次规划中此处应留空
- Start IP ------用于公网NAT的起始IP,在我们的本次规划中可以填写"192.168.136.11"
- End IP ------用于公网NAT的结束IP,在我们的本次规划中可以填写"192.168.136.20"
关于豆荚舱的配置:
在豆荚舱内我们会配置一段云内管理IP(这些IP会被分配给在这个实体机柜中的诸如"辅助存储"、"虚拟机实例控制台代理"之类的系统级虚拟机),这部分IP地址也被称为"预留IP"。这些IP依旧是我们规划中的CIDR地址块的一部分,例如可以是"192.168.136.21"到"192.168.136.30"。
- Pod Name------豆荚舱(实体机柜)的名称,可以使"pod1"或者"ZhangdeStateRack"
- Reserved system gateway ------你实体网络中规划给这个机柜的网路关口,在本里规划中为CIDR地址块网络关口"192.168.136.2"(和本规划中的宿主机使用相同的网络关口)
- Reserved system netmask ------你实体网络中规划给这个机柜的网路掩码,在本里规划中为CIDR地址块网络掩码"8.8.8.8"
- Start reserved system IPs ------预留给系统级虚拟机使用的起始IP,在我们的本次规划中可以填写"192.168.136.21"
- End Reserved system IP ------预留给系统级虚拟机使用的结束IP,在我们的本次规划中可以填写"192.168.136.30"
关于客户机网路流量:
为虚拟机实例配置可用的VLAN-ID 范围,这个范围决定了当前这个豆荚舱中可以容纳多少个虚拟机实例的"局域网"。在我们当前的规划中,填写"100至200"这个范围就满足我们使用了。
关于宿主机集群:
一个豆荚舱中可以有多个宿主机集群、一个宿主机集群中可以有多个宿主机。在我们使用的规划中,一个豆荚舱中只存在一个宿主机集群,因此我们需要个这个宿主机集群命名(可以使"cluster1"或者"ZhangdeState")。
关于宿主机:
在这里我们详述了一台虚拟化引擎宿主机的细节信息。在我们的当前规划中,Apache CloudStack的云管理服务节点192.168.136.209,同时也承担了Apache CloudStack计算节点的角色,因此我们依次填入了下图中的信息:
- Hostname------需要填写计算节点的hostname或者IP地址,按照既定规划我们填入了"192.168.136.209"
- Username ------需要填写登录计算节点OS的用户名,推荐填写"root"(OS为CentOS-7-2009)
- Password ------需要填写登录计算节点OS的用户名登录密码(OS为CentOS-7-2009)
关于主存储:
宿主机集群设定到了这一步,就需要填写cluster的主存储信息了:
- Name------主存储的名称,自定义填写,例如"Primary1"或"primary-NFS-192.168.136.209"
- Scope ------主存储可被使用的范围,可以选择"cluster"或"zone"
- Protocol ------主存储使用的网络协议,此处按照既定规划我们选用了"NFS"
- Server ------主存储服务所在主机的hstname或IP地址,此处按照既定规划我们填写了NFS-server的IP地址"192.168.136.209"
- Path ------主存储的关口路径,按照既定规划我们填入"/export/primary"
关于辅助存储:
一般我们需要填写一下信息:
- Provider------辅助存储的供应协议,按照既定规划我们选择"NFS"
- Name ------辅助存储的名称,自定义填写,例如"Secondary1"或"secondary-NFS-192.168.136.209"
- NFS server ------辅助储服务所在主机的hstname或IP地址,此处按照既定规划我们填写了NFS-server的IP地址"192.168.136.209"
- Path ------辅助存储的关口路径,按照既定规划我们填入"/export/secondary"
至此,一个专职地带便配置完毕,现在可以启动一个Apache CloudStack专职地带了。
要确认你所部署完毕的Apache CloudStack是否正常,可点击左侧的"基础设施"查看"系统虚拟机",应该可以看到"S-2-VM"和"V-1-VM"处于拉起状态且正在运行。而后来到"模板"点击"虚拟机模板",点击下载Apache CloudStack的内置虚拟机模板。也可以使用"模板"下的"ISO",从一个文件共享服务器上把一个ISO文件注册到Apache CloudStack上(本例中使用了http服务作为ISO文件共享服务器)。此时便可以使用虚拟机怒版或者ISO镜像文件创建一个虚拟机实例了。