更新时间:2022-04-07 GMT+08:00
分享

介绍

简要介绍

  • Kubernetes

    Kubernetes(常简称为K8s)是用于自动部署、扩展和管理容器化(Containerized)应用程序的开源系统。它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具,包括Docker等。Kubernetes在设计结构上定义了一系列的构建模块,其目的是为了提供一个可以共同提供部署、维护和扩展应用程序的机制。组成Kubernetes的组件设计概念为松耦合和可扩展的,这样可以使之满足多种不同的工作负载。可扩展性在很大程度上由Kubernetes API提供,此API主要被作为扩展的内部组件以及Kubernetes上运行的容器来使用。

  • Docker

    Docker是一个开源的应用容器引擎,Docker设想交付运行环境如同海运,操作系统如同一个货轮,每一个在操作系统基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后一个标准化组件是用户的App),这也就是基于Docker的PaaS产品的原型。

    开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。

  • Ceph

    Ceph是一个可靠的、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。Ceph提供统一的横向扩展存储,带有自我修复和智能预测故障的功能,已经成为软件定义存储的事实上的标准之一。因为Ceph是开源的,它使许多供应商能够提供基于Ceph的软件去定义合适的存储系统。

  • 混合部署

    混合部署属于鲲鹏芯片生态使能的功能性需求:要求实现K8s+Docker在x86和TaiShan下的混合部署,支持混部的功能点包括容器镜像创建、容器网络管理、容器存储管理。

考虑到用户实际使用方式,可以划分为两大场景:

  1. 扩容场景

    客户已有基于x86服务器组成的K8s+Docker集群,要求将新购入的TaiShan服务器加入现有集群,通过K8s Master(x86服务器)对TaiShan节点进行容器发放、网络管理和存储管理。

  2. 新建场景

    客户基于现有的x86服务器和TaiShan服务器组建新的K8S集群,并选定了TaiShan服务器作为K8s集群的Master,通过K8s Master,能够纳管TaiShan、x86节点,并对其进行容器发放、网络管理和存储管理。

存储管理中存储类型分为Volum类型和PersistentVolum类型。鉴于Ceph的流行度,存储管理将使用K8S集群外部的Ceph存储进行Persistent Volum 验证。

本文将描述x86和TaiShan服务器上进行K8s+Docker混合部署的环境安装部署方法。

建议的版本

建议的版本如下表所示。

表1 建议的版本

软件名称

版本

K8s

v1.15.1

Docker

18.09

Ceph

14.2.1

约束和限制

由于业务容器镜像的体系结构兼容性问题(即不是所有容器镜像都同时支持arm64体系结构和x86体系结构),K8s发放pod时需指定服务器的体系结构。这样可以规避在服务器故障的情况下,pod漂移到其他体系结构的服务器带来的潜在风险。

如下例所示,可利用K8s现有nodeSelector机制进行指定。

apiVersion: v1
kind: ReplicationController
metadata:
name: webapp
spec:
replicas: 2
template:
metadata:
name: webapp
labels:
app: webapp
annotations:
cni: "flannel"
spec:
containers:
- name: webapp
image: tomcat
ports:
- containerPort: 8080
nodeSelector:
        kubernetes.io/arch: arm64
分享:

    相关文档

    相关产品

close