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 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

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

IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备相关推荐

  1. Sparse-to-dense 3D Object Detector for Point Cloud(KITTI,Tencent Youtu,港中文,2019.7.22)

    Sparse-to-dense 3D Object Detector for Point Cloud(KITTI,Tencent Youtu,港中文,2019.7.22) 是基于点云的二阶段检测网络. ...

  2. Sui基金会联合Tencent Cloud和Numen在香港举办的生态交流会圆满结束

    5月24日,由Sui基金会.Tencent Cloud和Numen Cyber联合举办的Sui生态交流会在香港圆满结束.感谢Tencent Cloud为本次活动提供了场地支持.本次活动共吸引了60余名 ...

  3. 在Google Cloud Platform上持续部署Node.js

    by Gautam Arora 由Gautam Arora 在Google Cloud Platform上持续部署Node.js (Continuous Deployment for Node.js ...

  4. pcf8523_PCF上的Spring Cloud合同和Spring Cloud Services

    pcf8523 最近,我们有一个客户,对于使用Spring Cloud Contract (SCC)来防止微服务团队之间的API"漂移",微型开发团队会照顾个体的API(构成企业应 ...

  5. PCF上的Spring Cloud合同和Spring Cloud Services

    最近,我们有一个客户,对于使用Spring Cloud Contract (SCC)来防止微服务团队之间的API"漂移",微型开发团队需要由单个开发团队来照顾构成企业应用程序一部分 ...

  6. Spring、Spring MVC、Spring boot、Spring Cloud面试题(史上最全面试题,精心整理100家互联网企业,面试必过)

    最全面试题,精心整理100家互联网企业面经,祝你面试成功.面试必过(2023优化版)已发布在个人微信公众号[面向Offer学编程],优化版首先修正了读者反馈的部分答案存在的错误,同时根据最新面试总结, ...

  7. Spring Cloud的负载均衡Spring Cloud Ribbon和Spring Cloud Feign

    一.客户端负载均衡:Spring Cloud Ribbon. Spring Cloud Ribbon是基于HTTP和TCP的客户端负载工具,它是基于Netflix Ribbon实现的.通过Spring ...

  8. spring cloud系列一:Cloud Native Applications

    前言: Cloud Native是一种应用程序开发风格,鼓励在持续交付和价值驱动开发领域轻松采用最佳实践.一个相关的学科是构建12-factor Apps 应用程序,其中开发实践与交付和运行目标相一致 ...

  9. 【Spring Cloud Alibaba】Spring Cloud Alibaba 分布式配置Nacos实践

    课程说明 本次课程,你将会学习如下: 使用 Nacos Config 作为 Spring Cloud 分布式配置 使用 Nacos Config 实现 Bean 动态刷新 了解 Nacos Confi ...

  10. Spring Cloud第二季--Spring Cloud Bus

    文章目录 Spring Clud Bus 什么是总线 基本原理 牛刀小试 Spring Clud Bus 在Spring Cloud学习–配置中心(Config)中实现了集中管理微服务配置.不同环境不 ...

最新文章

  1. 例题6-5 移动盒子(Boxes in a Line, UVa 12657)
  2. 通过sort()方法实现升序和降序排列
  3. 【AI不惑境】残差网络的前世今生与原理
  4. 猫猫学iOS之小知识iOS启动动画_Launch Screen的运用
  5. Spring Boot——自定义多个拦截器(HandlerInterceptor)配置方法与执行顺序
  6. 【 HRBUST - 1055】Single(模拟,dp,打表)(总结)
  7. HBase Java API 代码开发
  8. PDF 补丁丁 0.4.1.688 测试版发布(请务必用其替换 682 测试版)
  9. mysql 1021 disk full_大分区使用xfs文件系统存储备份遇到的问题
  10. 梅特勒托利多xk3124电子秤说明书_托利多电子秤使用说明
  11. python url解析path_Django(CBV解析、模板层)
  12. PHP环境 PDOException PDOException: could not find driver
  13. js进栈出栈_[js]数组栈和队列操作
  14. gbase导入sql文件_GBase数据库——常用命令
  15. 桌面计算机图标不删除,电脑小技巧:教你删除桌面无法删除的图标
  16. 一篇文章看明白 Android 系统启动时都干了什么
  17. 单片机2017福建省中职省赛_我院学子在2017年福建省合泰杯单片机应用设计竞赛中再获佳绩...
  18. 微软通过共享文件夹的思路,使用工具SyncToy实现两台windows机器间的文件同步
  19. ​【​观察】云栖大会共话JDM模式 揭秘创新背后的价值和启示
  20. Android蓝牙开发——经典蓝牙的连接

热门文章

  1. 新年贺卡php,PS设计2016猴年大吉新年贺卡
  2. 2019-11-10训练总结
  3. c++中 append()函数用法
  4. html 6位数支付密码,支付宝支付密码怎么设置长密码 支付宝支付密码取消6位数字密码设置长密码的方法...
  5. 空气质量预报模式系统(CMAQ)
  6. DAY3:尚学堂高琪JAVA(33~40)
  7. 帝国采集发布-帝国免规则采集发布
  8. bert实践:关系抽取解读
  9. Linux服务器跑机器学习代码报错记录
  10. U盘插入,无法读取?6种解决方法