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配置做一些调整的原因。

  1. 获取机器登录密码:

  1. 进入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 COSaccess key Id

secret_access_key = a9d3bxxxxxxxxxxxxxxxxxxxef    #IBM COSsecret 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

https://blog.csdn.net/koolincn/article/details/117988958

以上是关于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准备

在 IBM-Cloud-cloud 对象存储中保留啥作为网络鸭连接服务器端点 URL

IBM 发布Cloud Private:基于Kubernetes和Cloud Foundry