返回
如何基于国产CPU的云平台构建容器管理平台?(下)
2018-12-29 15:22

随着“中兴事件”不断升级,引起了国人对国产自主可控技术的高度关注;本人作为所在单位的运维工程师,也希望能找到一个稳定、能兼容国产CPU的一整套架构方案,来构建IaaS平台和PaaS平台,满足单位对安全自主可控的需求。要基于全国产方式解决公司业务需求至少要在软硬件层面满足,而国内基本都是基于x86解决方案,想找到满足需求的国产化解决方案还是非常困难的事情。但笔者由于一个偶然的机会,接触到了国产的芯片厂商和云计算厂商,并得知他们已经实现了全国产化的云计算平台,笔者也亲自动手体验了安装部署该云计算平台,并在其之上安装部署了容器平台。上篇我给大家分享了国产CPU的服务器华芯通和国产云平台ZStack试用体验,接下来将为大家详细分享如何基于ZStack云主机构建K8S集群。

第三节 基于ZStack云主机构建K8S集群

这里要提一下,为什么我们不直接使用物理ARM服务器部署K8S集群,这跟单位测试场景有关系,既要使用云主机透传GPU计算卡进行大量的计算,又要实现容器管理平台。况且国外主流的K8S集群通常是跑在虚拟机里面的,运行在虚拟机里面的好处有很多,比如可以实现资源定制分配、利用云平台API接口可以快速生成K8S集群Node节点、更好的灵活性以及可靠性;在ZStack ARM云平台上可以同时构建IaaS+PaaS混合平台,满足不同场景下的需求。

由于篇幅有限下面先介绍一下如何在基于ZStack For ARM平台中云主机部署K8S集群,整个部署过程大概花1小时(这主要是访问部分国外网络时不是很顺畅)。

集群环境介绍:

1.png

在本环境中用于构建K8S集群所需的资源,为基于ZStack构建的平台上的云主机:

2.png

3.png

ZStack云主机K8S集群架构

1、准备工作

配置主机名

4.png

所有云主机上关闭swap分区 否则会报错;该操作只需在云主机环境下执行,物理机环境无需操作。

5.png

2、安装部署

2.1 安装Docker

step 1:  安装必要的一些系统工具

6.png

step 2: 安装GPG证书

7.png

Step 3: 写入软件源信息

8.png

Step 4: 更新并安装 Docker-CE

9.png

使用daocloud对docker镜像下载进行加速。

10.png

2.2 安装go环境


1.png


2.3 安装kubelet、kubeadm、kubectl

2.png

2.4用kubeadm创建集群

3.png

2.5 配置kubectl

4.png

2.6 安装Pod网络

5.png

6.png

7.png

8.png

9.png

10.png

2.7注册节点到K8S集群

分别在K8S-Node1、K8S-Node2、K8S-Node3

1.png

kubectl get nodes 查看节点状态

2.png

如果发现所有节点是NotReady 是因每个节点都需要启动若干个组件,这些组件都是在Pod中运行,且需要到Google下载镜像。使用下面命令查看Pod运行状况:

3.png

4.png

kubectl get nodes 再次查看节点状态

5.png

当所有节点均为 Ready状时,此时就可以使用这个集群了

2.8  部署kubernetes-dashboard

克隆kubernetes-dashboard yaml文件

6.png

修改kubernetes-dashboard yaml文件,修改内容为下面红色粗体部分。

7.png

8.png

9.png

10.png

1.png

2.png

3.png

4.png

5.png

注意:如果在部署K8S-Dashboard界面过程中如果则登录UI的时候会报错:

6.png

这是因为K8S在1.6版本以后启用了RBAC访问控制策略,可以使用kubectl或Kubernetes API进行配置。使用RBAC可以直接授权给用户,让用户拥有授权管理的权限,这样就不再需要直接触碰Master Node。按照上面部署步骤则可以避免。

7.png

8.png

至此,基于ARM环境的K8S集群就部署完成了。

第四节 全篇总结

先说说关于ZStack安装部署的一些心得,整个ZStack For ARM平台部署到业务环境构建的过程,都是比较流畅的。ZStack产品化程度高,安装过程非常简单,基本上按照官方部署文档1个小时内就能完成3台规模的云平台搭建及平台初始化工作。

ZStack云平台采用独特的异步架构,大大提升了平台响应能力,使得批量并发操作不再成为烦恼;管理层面与业务层面独立,不会因为管理节点意外宕机导致业务中断;平台内置大量实用性很高的功能,较大方便了在测试过程中运维任务;版本升级简单可靠,完全实现5分钟跨版本无缝升级,经实测升级过程中完全不影响业务正常运行。通过升级后能实现异构集群管理,也就是说在ARM服务器上构建管理节点,可以同时管理ARM集群中的资源,也能管理X86架构集群中的资源;同时实现高级SDN功能。

而基于ZStack云主机构建K8S集群时,我们团队在选择方案的时候,也拿物理机和云主机做过一系列对比,对比之后发现当我用ZStack云主机部署K8S集群的时候更加灵活、可控。具体的可以在以下几个方面体现:

1、ZStack云主机天生隔离性好

对容器技术了解的人应该清楚,多个容器公用一个Host Kernel;这样就会遇到隔离性方面的问题,虽然随着技术发展,目前也可以使用Linux系统上的防护机制实现安全隔离,但是从某个层面讲并不是完全隔离,而云主机方式受益于虚拟化技术,天生就有非常好的隔离性,从而可以进一步保障安全。ZStack就是基于KVM虚拟化技术架构自研。

2、受益于ZStack云平台多租户

在物理服务器上运行的大堆容器要实现资源自理,所谓资源自理就是各自管理自己的容器资源,那么这个时候问题就来了,一台物理机上有成千上万个容器怎么去细分管理范围呢?这个时候云平台的多租户管理就派上用处了,每个租户被分配到相应的云主机,各自管理各自的云主机以及容器集群。同时还能对不同人员权限进行控制管理。在本次测试的ZStack For ARM云平台,就可以实现按企业组织架构方式进行资源、权限管理,同时还能实现流程审批,审批完成后自动创建所需的云主机;据说后面发布的ZStack2.5.0版本还有资源编排功能。

3.ZStack云平台灵活性、自动化程度高

通过ZStack,可以根据业务需求,对云主机进行资源定制,减少资源浪费。同时根据自身业务情况调整架构实现模式,比如:有计算密集型业务,此时可以借助GPU透传功能,将GPU透传到云主机,能快速实现计算任务,避免过多繁琐配置。

另外目前各种云平台都有相应API接口,可以方便第三方应用直接调用,从而实现根据业务压力自动进行资源伸缩。但是对于物理服务器来说没什么完整的API接口,基本上都是基于IPMI方式进行管理,而且每个厂商的IPMI还不通用,很难实现资源的动态伸缩。说到API接口,我了解到的ZStack云平台,具备全API接口开放的特点。可以使容器集群根据业务压力自动伸缩。

4、可靠性非常好

为什么这么说呢?其实不难理解,计划内和计划外业务影响少。当我们对物理服务器进行计划内维护时,那些单容器运行的业务必定会受影响,此时可以借助云平台中的热迁移功能,迁移的过程中可实现业务不中断。对于计划外停机,对业务影响基本上都是按天算的,损失不可言表。如果采用云平台方式业务中断时间将会缩短到分钟级别。

上面简单分享了一下用云主机构建K8S集群的一些优点,当然也有一些缺点,在我看来缺点无非就是性能有稍微点损失,总之利大于弊。可以在规划时规避掉这个问题,比如可以将性能型容器资源集中放到物理Node上,这样就可以完美解决了。

最后再说说在ZStack ARM架构的云主机上部署K8S需要注意的地方,为大家提供一些参考。

1、默认Get下来的yaml配置文件,里面涉及的image路径都是x86架构的amd64,需要将其改成arm64。

2、在创建集群的时候,如果采用flannel网络模式则--pod-network-cidr一定要为 10.244.0.0/16,否则Pod网可能不通。

3、云主机环境一定要执行sudo swapoff -a 不然创建K8S集群的时候就会报错。

以上就是我本次的主要分享内容,欢迎大家关注交流。


升级提醒

若您选择升级至4.0.0及之后版本,请注意以下功能调整:

1. 云路由器全面升级为VPC路由器,云路由网络全面升级为VPC网络,不再单独设云路由器页面。升级全程无感知,相关业务不受任何影响。

2. 企业管理账号体系取代用户组与用户,不再单独设用户/用户组页面,不可再使用用户/用户组账号登录云平台。升级前,请先将“用户组与用户”纳管的账号数据妥善迁移至“企业管理”纳管,再执行升级操作。注意:对于admin创建并具备admin权限的用户账号同步取消,如有需要,可使用企业管理账号体系中的平台管理员实现相同功能。

3. 调整AD/LDAP与账户的对接管理方式,统一由企业管理纳管,不再单独设AD/LDAP页面。升级前,请先将“账户”对接纳管的AD/LDAP账号数据妥善迁移至“企业管理”纳管,再执行升级操作。

如对上述升级提醒有任何疑问或需要升级帮助,请联系ZStack官方技术支持

下载ZStack企业版

您已填写过基本信息?点击这里

姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

下载链接将会通过邮件形式发送至您的邮箱,请谨慎填写。

下载ZStack企业版

还未填写过基本信息?点击这里

邮箱或手机号码格式错误
验证手机号
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
登录观看培训视频
仅对注册用户开放,请 登录 或 填写资料 观看培训视频
填写资料

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io
ZStack认证培训咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
申请ZStack多机版
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io
立即咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io
培训认证合作伙伴申请
姓名应该不少于2个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
邮箱格式错误
城市名称不应该少于2个字符
公司名称不应该少于4个字符
职位名称不应该少于2个字符

商务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
ZStack&工信人才联合证书申请
已获得ZStack原厂证书
未获得ZStack原厂证书
请填写您的基本信息
姓名应该不少于2个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
邮箱格式错误
城市名称不应该少于2个字符
公司/学校名称不应该少于4个字符
证书类型
ZCCT
ZCCE
ZCCA
ZCPC-ISP
申请ZStack&工信人才联合证书须支付工本费,是否可以接受

商务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。 当您收到电子邮件后,请点击 URL 链接,以完成下载。

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。
或点击下方URL链接 (IE内核浏览器请右键另存为), 完成下载:

感谢您使用 ZStack 产品和服务。

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。

信息提交成功。

我们将安排工作人员尽快与您取得联系,请保持电话畅通。

感谢您使用 ZStack 产品和服务。

产品咨询

扫码立即线上沟通

联系我们

产品咨询
400-962-2212 转 1
售后咨询
400-962-2212 转 2

联系我们

回到顶部

产品试用申请
请选择您要试用的产品
ZStack Cloud 企业版
ZStack Cloud 混合云版
ZStack Cloud 基础版
ZStack Cloud 标准版
请填写您的基本信息
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。