IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备
Posted koolincn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备相关的知识,希望对你有一定的参考价值。
IBM Cloud在2021年3月,推出了IBM Cloud Satellite服务,意在帮助那些希望使用公有云服务,又想利用现有的自有数据中心资源,或者在非IBM Cloud平台上(即第三方云平台)使用IBM Cloud服务的用户,又或者是希望在边缘节点拥有公有云服务能力的用户。
IBM Cloud Satellite帮助您将您自有的数据中心,边缘节点接入到IBM Cloud,通过IBM Cloud Satellite接管你现有的计算资源,将IBM Cloud平台上的服务部署到您的自有环境和边缘节点上,使您在自有数据中心和边缘节点上也拥有IBM Cloud服务的能力,在本地运行您自己的应用,一方面达到更快速高效的访问能力,另一方面将应用数据,客户数据留在自有数据中心和边缘节点,满足客户对数据安全的要求。当然,IBM Cloud Satellite也可以部署到第三方云资源上,在第三方云资源上部署IBM Cloud平台上的服务,以解决IBM Cloud在某些地域没有数据中心的缺陷。
在此,我将使用腾讯云,将IBM Cloud Satellite部署到Tencent Cloud在中国上海,北京或其他国内的数据中心,以解决IBM Cloud在中国暂时没有数据中心的缺陷,帮助那些希望使用IBM Cloud上的服务,并希望应用运行在中国国内的用户。
在开始动手之前,这里需要您先准备好IBM Cloud账号以及Tencent Cloud的账号。(有关如何创建IBM Cloud和Tencent Cloud的账号的过程,不在这里进行讲述)
准备好两个云平台账号后,我们先来看一下IBM Cloud Satellite对于我们资源的一个要求情况:(https://cloud.ibm.com/docs/satellite)
1、规划您的基础架构环境:
您的Satellite Location从运行在IBM Cloud之外的基础设施开始,例如第三方云提供商或您自有的数据中心。您的基础设施为您用于构建Satellite Locatoin的主机和区域提供了基础。
为实现整个环境的更高可用性,我们期望准备3个满足要求的机器(此处我们称之为HOST,无论是物理机或虚拟机都可以)来进行Satellite Location中Satellite Control Plane的部署,机器最好分散在同一个区域的不同地点,同时满足高可用环境和Control Plane节点之间低网络延时的要求。除了需要准备3个机器用于部署Satellite Control Plane之外,另外我们还需要准备机器部署后续需要运行在Satellite Location环境中服务所需要的资源,这里推荐的最小配置也是3个HOST,按搭建一个基础的OpenShift环境的要求。除了在高可用方面,IBM Cloud Satellite有期望的要求外,在IBM Cloud Satellite Management与Satellite Location之间的延时,以及Satellite Location中的HOST之间,也有期望的要求,要连接到IBM Cloud Satellite中心的Satellite Location Control Plane的HOST必须具有小于或等于200毫秒(<=200ms)往返时间(RTT)的低延迟连接。随着延迟的增加,您可能会看到对性能的影响,包括Satellite链路吞吐量、Satellite启用的服务供应时间、主机故障恢复时间,以及在极端情况下,在Satellite Location Control Plane(如OpenShift集群主机)中运行的资源的可用性。 在Satellite Location的HOST之间,用于Satellite Location Control Plane的工作节点的主机和用于该Location的其他资源的主机之间,他们之间的延时应具有小于或等于100毫秒(<=100ms)往返时间(RTT)的低延迟连接。
所以,总结一下,下面准备搭建的IBM Cloud Satellite最小环境,需要准备6个HOST,HOST之间尽可能满足100ms以内的延时要求,Satellite Location到IBM Cloud Satellite服务中心尽可能满足200ms以内的延时要求。
2、Satellite对HOST配置的要求:
机器需要满足4核16G,外加100G硬盘的配置要求,如果有更富裕的硬盘当然最好,以方便后面Satellite运行期间日志的存储不会有影响。 另外需要配置至少100M网卡和网络带宽,用于安装部署Satellite Control Plane和IBM Cloud其他服务时候下载软件包的需要(我之前只用5M的带宽进行安装,最后因超时而导致失败)。除机器配置以外,现在Satellite Location中的HOST只支持x86平台的RedHat Enterprise Linux 7版本。像Windows,IBM Power的AIX/Linux,IBM mainframe系统的IBM Z现在还暂不支持。
对于RHEL7系统,需要启用下面的软件仓库,以在IBM Cloud Satellite Location部署过程中下载并安装所需要的软件包,可以通过一下命令启用。
#subscription-manager repos --enable rhel-server-rhscl-7-rpms
#subscription-manager repos --enable rhel-7-server-optional-rpms
#subscription-manager repos --enable rhel-7-server-rh-common-rpms
#subscription-manager repos --enable rhel-7-server-supplementary-rpms
#subscription-manager repos --enable rhel-7-server-extras-rpms
主机在的网络方面的配置需要满足以下要求,所有主机的MTU值必须一致(建议使用默认值1500),localhost必须解析为127.0.0.1,网卡地址避开下面的网段:172.16.0.0/16, 172.18.0.0/16, 172.19.0.0/16, 172.20.0.0/16, 和 192.168.255.0/24。所有机器必须使用相同的默认Gateway,默认路由必须是启用在第一个网卡上(如eth0,ens0等等),能够正常解析互联网域名。Location内部机器之间的通讯需放开所有端口,为用户访问放开Satellite Location Control Plane的443和30000-32767端口(TCP),为IBM Cloud Satellite服务端放开Satellite Location Control Plane的443和30000-32767的TCP端口,以及30000-32767的UDP端口。具体细节,可参考(https://cloud.ibm.com/docs/satellite?topic=satellite-host-reqs)
环境准备
一、制作RHEL系统镜像
由于Tencent Cloud目前还没有提供RedHat Enterprise Linux的操作系统支持,而且目前IBM Satellite还只支持RedHat Enterprise Linux系统,所以我们需要在Tencent Cloud中准备我们自己的RHEL镜像(系统)来支持后面Satellite Location的安装和设置工作。鉴于Tencent Cloud还无法提供在虚拟机上自己安装操作系统的功能,我们下面使用导入外部镜像的方式实现。
我们在IBM Cloud中创建一个Classic的小配置虚拟机(如1C2G),选择RHEL 7操作系统,(区域可以随便选择,但推荐美国或澳洲地区,因为后面我们需要创建区域性的对象存储,最好是和对象存储在同一个区域,这样后面镜像传输的时候更为方便快捷)这里我们选择月租型机器(后面用于上传下载对象存储中的镜像文件,传输到腾讯云会有外网流量,而月租型的机器有每月250GB的赠送流量),当然你也可以选择时租型机器,我们生成镜像只需要很短的时间就可以完成,完成之后就可以退租机器,以节省费用。
(此处我们需要选取BootDisk最好是100GB, 因为Satellite Control Plane需要我们的磁盘空间要大于100GB,以保证后续有足够的空间记录日志)
点击“创建“后约2到3分钟机器就可以Ready可用。然后我们登录进操作系统对RHEL的subscription配置进行调整。可能读者会问,此处为什么需要进行RHEL Subscription的调整,难道IBM的RHEL订阅有问题?其实是这样的,IBM的RHEL订阅,注册的是IBM内部的RHEL订阅服务器,每个IBM区域都设置有IBM内部的RHEL订阅服务器,需要安装RHEL相关软件包的话,都会通过内部网络进行安装。我们如果不做任何修改和调整,将RHEL系统镜像直接导出,然后再导入到Tencent Cloud的话,原先RHEL系统里面相应的订阅信息也就无法使用了,并且需要unregister之前的subscription后才能注册新的subscription,但是由于无法连接IBM之前的内部网络,所以unregister这个步骤会一直无法完成,那么我们也就无法注册我们新的订阅,这也是为什么我们需要先登录进入系统,对原先的subscription配置做一些调整的原因。
- 获取机器登录密码:
- 进入RHEL系统,对选项的订阅进行unregister, 并修改相关订阅配置,如订阅服务器域名,端口等等:
#subscription unregister
#subscription-manager config --server.hostname=subscription.rhsm.redhat.com --server.port=443 --server.prefix=/subscription
#subscription-manager config --rhsm.baseurl=https://cdn.redhat.com --rhsm.full_refresh_on_yum=0 --rhsm.repo_ca_cert=/etc/rhsm/ca/redhat-uep.pem
3. 退出系统,并抓取镜像,在虚拟机的详细页面下,右侧的下拉菜单,选择“Create image template“
此过程大约需要两分钟左右,完成后,在左上角的菜单à经典基础架构à管理à镜像中查看:
到此,RHEL镜像,在IBM Cloud上创建完成,后面我们需要将镜像上传到IBM Cloud的对象存储,然后再同步到腾讯云的对象存储上,最后导入到腾讯云的镜像库,供我们在腾讯云上部署RHEL操作系统使用。 后面讲解如何将刚刚在IBM Cloud上生成的RHEL镜像,同步到腾讯云,并添加入镜像库。
二、创建对象存储
在IBM Cloud上创建对象存储实例,创建区域类型的存储桶,并生成服务密钥(启用HMAC), 记下相关信息,供后面配置对象存储同步工具使用(存储桶名称,服务密钥ID和Key,存储桶端点信息)
创建服务密钥,并记下key和id,供后面配置对象存储工具使用。(如果你后面直接通过URL方式下载和上传文件到对象存储,可以不用设置服务密钥,但是这里还是推荐服务密钥的方式比较方便)
在腾讯云上创建对象存储实力和存储桶,创建API密钥,记下相关信息(存储桶名称,API secretid与secretkey,对象存储端点信息),供后面配置对象存储工具使用。(我们这里的对象存储桶创建的区域是上海,因为我们后面需要在上海开机器资源, 系统的镜像导入需要和对象存储在同一个区域才可以)
三、同步对象存储中的镜像文件
找一台机器安装对象存储同步工具,我们在这里使用rclone进行对象存储同步,我在这里使用的是我之前用于生成RHEL系统镜像的IBM Cloud上的虚拟机,因为我们后续需要对镜像文件进行格式的转换,需要有大于100GB的可用空间,为避免后面磁盘空间不足,我们额外再给虚拟机添加一个200GB的磁盘,然后再进行格式化并挂载到RHEL系统(如果各位希望使用其他操作系统,如windows,centos等等,可以对虚拟机进行OS Reload操作)
完成后登录系统,使用fdisk命令可以查看到新加的磁盘。
#fdisk -l
#fdisk /dev/xvdc
#mkfs.ext4 /dev/xvdc1
#mkdir /data
#mount /dev/xvdc1 /data
添加一行内容到/etc/fstab文件,让下次系统启动时自动挂载,如下所示:
/dev/xvdc1 /data ext4 defaults,noatime 0 0
安装rclone工具,编辑rclone.conf文件如下:(rclone.conf文件位于 ~/.config/rclone/目录下)
# yum install -y unzip
# curl https://rclone.org/install.sh | sudo bash
#cat /root/.config/rclone/rclone.conf
[my-ibm-cos] # 自己定义的在rclone工具里面的IBMCOS存储实例名称
type = s3
provider = IBMCOS
env_auth = false # 不从环境变量中获取密钥
access_key_id = 5xxxxxxxxxxxxx9 #IBM COS的access key Id
secret_access_key = a9d3bxxxxxxxxxxxxxxxxxxxef #IBM COS的secret access key
region = other-v2-signature
endpoint = s3.private.us-south.cloud-object-storage.appdomain.cloud # IBMCOS内网端点,因为我们的服务器在IBM云上,使用内部端点可以免去流量费用
location_constraint = us-south-standard
acl = public-read
[my-tencent-cos] # 自己定义的在rclone工具里面的腾讯云存储实例名称
type = s3
provider = Other
env_auth = false # 不从环境变量中获取密钥
access_key_id = AKIDVxxxxxxxxxxxxxxxxxxxxOtE # 腾讯云的secretId
secret_access_key = FExxxxxxxxxxxxxxxxxxxxxxxxxM # 腾讯云的secretKey
endpoint = cos.ap-shanghai.myqcloud.com # 腾讯云对象存储COS的域名
acl = public-read
你也可以使用rclone配置向导进行设置(执行rclone config)
有关如何配置rclone工具,设置IBM和Tencent对象存储的详细步骤,也可以参考这两个链接:
https://blog.csdn.net/koolincn/article/details/116521882
https://blog.csdn.net/koolincn/article/details/116522215
安装镜像文件转换工具
#yum -y install qemu-img
将IBM Cloud上之前生成的系统镜像文件上传到IBM Cloud的对象存储上。
这里导出到对象存储需要用到的API key,可以从这里获得,如下图所示:
如果之前没有创建,可以直接创建一个,记下相应的ID与KEY。
执行rclone命令,查询并下载系统镜像文件到操作系统本地。
# rclone lsd my-ibm-cos:
-1 2021-06-05 03:06:54 -1 mycos-bucket-001
# rclone ls my-ibm-cos:mycos-bucket-001
3833229824 rhel100g-0.vhd
915406848 ubuntu-16.04.6-server-amd64.iso
#
#rclone copy -P my-ibm-cos:mycos-bucket-001/rhel100g-0.vhd /data/
对镜像文件进行转换,并调整镜像文件大小。
#qemu-img convert –f vpc –O raw rhel100g-0.vhd rhel100g.raw
#qemu-img rsize rhel100g.raw -- 45G
(镜像文件经vhd格式转换成raw格式后,文件大小将是物理磁盘的大小【当时订购的是选的100G的启动盘,所以raw文件的大小也是100G】,我们需要将raw文件的大小重新调整一下,以免超过腾讯云镜像导入文件不能大于50G的要求,但是size也不能调整得太小,以免破坏原有的文件系统)
镜像文件调整完成之后,将镜像文件上传到腾讯云的对象存储中。
#rclone copy -P /data/rhel100g.raw my-tencent-cos:zt-cos-tencent-sh-xxxxxx/
在腾讯云的控制台导入RHEL镜像。
复制镜像文件的存储URL
四、导入系统镜像。
这里可以先试着使用正常方式导入,如有问题,可以选择强制方式。
五、部署虚拟机资源
在腾讯云上部署虚拟机资源,选择自定义镜像,将磁盘大小调整为100G+,记得将网络带宽调整到100M+
登录系统,进行RHEL订阅的注册和启用相关的软件仓库。
#subscription-manager register --username xxxx --password xxxx --auto-attach
#subscription-manager refresh
#subscription-manager repos --enable rhel-server-rhscl-7-rpms
#subscription-manager repos --enable rhel-7-server-optional-rpms
#subscription-manager repos --enable rhel-7-server-rh-common-rpms
#subscription-manager repos --enable rhel-7-server-supplementary-rpms
#subscription-manager repos --enable rhel-7-server-extras-rpms
六、注册并获得RHEL订阅
如果你还没有RHEL的订阅,可以通过下面的方法,获得最多支持16个机器的免费订阅号,此program是RedHat专门针对开发者提供的免费的订阅,支持小型的开发测试环境使用。
注册成为RHEL用户并加入开发者计划 (http://developers.redhat.com/)
查看并管理订阅(https://access.redhat.com/management)
至此,部署Satellite Location的所有准备工作全部完成,包括腾讯云平台RHEL系统镜像的准备,RHEL虚拟机的创建,RHEL订阅账号的注册与申请,RHEL系统仓库的启用等等。
请继续阅读文章的第二部分,创建并部署IBM Satellite
以上是关于IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备的主要内容,如果未能解决你的问题,请参考以下文章
IBM Cloud Satellite在Tencent Cloud上的部署--Part2部署
IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备
IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备
IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备