更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
天翼云容器化服务 (1)定义:容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可在几乎任何地方以相 同的方式运行。开发人员在计算机上创建容器,无需任何修改就能在生产系统虚拟机、物理服务 器或公有云主机上运行。有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的 组之间平衡有冲突的资源使用需求。 (2)容器与虚拟机区别 1容器与虚拟机之间的主要区别在于虚拟化层的位置和操作系统资源的使用方式。 2传统虚拟机是虚拟出一套硬件后,在硬件上运行一个完整的操作系统,在该系统上运行应用 程序。 3而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,而且也没有进行硬 件虚拟。因此容器更为轻便,每个容器相互隔离,每个容器都有自己的文件系统,容器之间 进程不会相互影响。 4容器耦合度低,启动是秒级的,而虚拟机是分钟级别的。 (3)容器技术的优势 1快速的交付和部署:对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以 在任意地方正常运行。 2更高效的虚拟化:Docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化, 因此可以实现更高的性能和效率。 3服务组合:采用容器的方式进行部署,整个系统会变得易于组合,通过容器技术将不同服务 封装在对应的容器中,之后结合一些脚本使这些容器按照要求相互协作,这样操作不仅可以 简化部署难度还可以降低操作风险。 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —47— 4易于迁移:容器技术最重要的价值就是,在不同主机上运行服务都提供了一个轻便的、一致 的格式。 (4)容器所涉及到的关键技术:镜像、运行时引擎、容器编排、容器集群、服务注册和发现、容器热 迁移。 (5)镜像命令 1搜索镜像:dockersearchtomcat 2下载镜像:dockerpull镜像I (6)容器命令 1dockerrun-it-d-p80:80--namedatahttpd-v/data/:/var/www/httpd/http -i:表示以交互模式运行容器,通常与-t同时使用。 -t:为容器重新分配一个伪输入终端,通常与-i同时使用。 -d:后台运行容器,并返回容器ID。 -p:端口映射,格式为“宿主机端口:容器端口”。 --name:为容器指定一个名称。 -v:把宿主机上的一个目录挂载到镜像里,格式为“宿主机目录:镜像内挂载的路径”,必须 为绝对路径。 (7)Docker镜像原理 1一个只读层被称为镜像,一个镜像是永久不会变的。 2由于Docker使用一个统一文件系统,Docker进程认为整个文件系统是以读写方式挂载的。但 是所有的变更都发生在顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不 可写,所以镜像是无状态的。 3每一个镜像都可能依赖于由一个或多个下层组成的另一个镜像。下层那个镜像是上层镜像的 父镜像。 4一个镜像不能超过127层。 5所有镜像都是通过一个64位十六进制字符串(内部是一个256bit的值)来标识的。为简 化使用,前12个字符可以组成一个短I (8)Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩 容缩容、维护等功能。 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —48— (9)通过Kubernetes我们可以快速部署应用、快速扩展应用、无缝对接新的应用功能、节省资源,优 化硬件资源的使用。我们的目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或 私有云中运行的负担。 (10)Kubernetes特点 1可移植:支持公有云,私有云,混合云,多重云(multi-clou 3自动化:自动部署,自动重启,自动复制,自动伸缩/扩展 (11)Kubernetes由APIServer、Scheduler、ControllerManager和ETCD四个组件构成。 1APIServer:各组件互相通讯的中转站,接受外部请求,并将信息写到ETCD中。 2ControllerManager:执行集群级功能,例如复制组件,跟踪Node节点,处理节点故障等等。 3Scheduler:负责应用调度的组件,根据各种条件(如可用的资源、节点的亲和性等)将容器 调度到Node上运行。 4ETCD:etcd是一个高可用的分布式键值(key-valu 致性算法,etcd基于Go语言实现。它用来存储一些数据,比如各个节点的状态。 (12)在生产环境中,为了保障集群的高可用,通常会部署多个Master。 (13)Master下发指令由Node执行,Node节点是集群的计算节点,即运行容器化应用的节点。 (14)kubelet:kubelet主要负责同ContainerRuntime打交道,并与APIServer交互,管理节点上的 容器。 (15)kube-proxy:应用组件间的访问代理,解决节点上应用的访问问题。 (16)ContainerRuntime:容器运行时,如Docker,最主要的功能是下载镜像和运行容器。 (17)Node节点执行完指令后,会将容器状态更新到ETCD里面。 (18)Kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的, 用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并 且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 (19)Kubernetes的特性包括: 1服务发现和负载均衡 2存储编排 3自动部署和回滚 4自动完成装箱计算 5自我修复 6密钥与配置管理 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —49— (20)Kubernetes的工作模式: KubernetesCluster=NMasterNode+NWorkerNode;(N>=1) 1单master集群(N=1) 2多master集群(N>1) (21)Kubernetes的组件架构 1控制平面组件:控制平面的组件对集群做出全局决策(比如调度),以及检测和响应集群事件 (例如,当不满足部署的replicas字段时,启动新的po 任何节点上运行。为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此计算机上运行用户容器。 2控制平面组件包括Kube-apiserver、Etc Cloud-controller-manager 3Node组件:节点组件在每个节点上运行,维护运行的Pod并提供Kubernetes运行环境。 4节点组件包括Kubelet、Kube-proxy (22)K8s的部署方式包括通过Kubeadm部署工具部署以及使用二进制包部署 1Kubeadm是一个k8s部署工具,提供kubeadminit和kubeadmjoin,用于快速部署k8s集群, 一般是标准化的安装步骤。 2二进制包部署:更容易可控 (23)mysql的Deployment定义文件,mysql-dep.yaml文件内容描述: 1apiVersion:定义使用apiserver的哪个版本,可通过kubectlapi-versions命令查看 apiserver有哪些版本; 2kind:用来表明此资源对象的类型,比如这里的值为“Deployment”,表示这是一个deployment; 3spec:RS相关属性定义,spe 拥有这些标签的Pod实例,确保当前集群上始终有且仅有replicas个Pod实例在运行,这里 设置replicas=1表示只能运行一个MysqlPod实例。 (24)YAML语法格式: 1缩进表示层级关系 2不支持制表符“tab”缩进,使用空格缩进 3通常开头缩进2个空格 4字符后缩进1个空格,如冒号、逗号等 5“---”表示YAML格式,一个文件的开始 6“#”注释 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —50— (25)Nginx-deploy.yaml文件描述: 1apiVersion:API版本 2kind:资源类型 3metadata:资源元数据 4spec:资源规格 5replicas:副本(实例)数量 6selector:标签选择器,与下面metadat 7template:Pod模板 8metadata:Pod元数据 9spec:Pod规格 10containers:容器配置 (26)Nginx-servic 1port:Service端口,通过ClusterIP访问用 2targetPort:镜像内服务端口,例如nginx镜像是80 3selector:标签选择器,与Deployment中标签保持一致 4type:Service类型 (27)Yaml命令: 1获取deployment版本号:kubectlapi-resources|grepdeployment 2部署或更新deployment:kubectlapply-fnginx-deploy.yaml 3查看Deployment上线状态: kubectlrolloutstatusdeployment/nginx-deployment 4部署或更新service:kubectlapply-fnginx-servic 5检查service:kubectlgetservic 7删除:kubectldelete-fnginx-deployment.yaml (28)Deployment控制器的定义:Deployment是最常用的k8s工作负载均衡器,是k8s的一个抽象的概 念,用于更高层次对象,部署和管理pod。 (29)Deployment是kubernetes控制器的又一种实现,它构建于ReplicaSet控制器之上,可为Pod和 ReplicaSet资源提供声明式更新,在Deployment对象中描述一个期望的状态。 (30)Deployment控制器的主要特性包括: 1事件和状态查看 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —51— 2回滚 3版本记录 4暂停和启动 5多种自动更新方案 (31)Deployment控制器主要功能 1创建Deployment 2更新策略 3升级Deployment 4扩容和缩容 5回滚Deployment控制器下的应用发布 6金丝雀发布 (32)Deployment控制器支持两种更新策略:滚动更新(rollingupdat 默认为滚动更新。 (33)Service控制器的定义:通过创建Servic 入口地址,并且将请求负载分发到后端的各个容器应用上。 (34)Service的存在基于服务发现和负载均衡: 1服务发现:Pod因为node节点的宕机会导致其重新调度,这样pod就没有固定的ip,那么之 前的pod就会失联,为了防止重新调度的pod能够找到就需要进行服务发现。 2负载均衡:Service定义了一组pod的访问策略:前台请求,后台将其进行负载均衡,然后分 发到不同的pod上。 (35)Service资源作用:Service是一组具有相同labelpod集合的抽象,集群内外的各个服务可以通 过Service进行互相通信。 (36)Service的工作原理: 1Endpointscontroller:是负责生成和维护所有endpoints对象的控制器,监听Service和 对应pod的变化,更新对应Service的endpoints对象。 2Iptables模式:Iptables模式是目前默认的代理方式,基于netfilter实现。当客户端请求 Service的ClusterIP时,根据iptables规则路由到各pod上,Iptables使用DNAT来完成 转发,其采用了随机数实现负载均衡。 3Userspace模式:在userspace模式下,访问服务的请求到达节点后首先进入内核iptables, 然后回到用户空间,由kube-proxy转发到后端的po 性能损耗是不可接受的,所以也就有了iptables模式。 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —52— 4Ipvs模式:当集群规模比较大时,Iptables规则刷新会非常慢,难以支持大规模集群。 (37)Service的三种类型: 1ClusterIP类型:ClusterIP把客户端的请求通过负载均衡路由到集群后端的pod中, ClusterIP类型的service主要在每个node节点上使用ipvs,将发到ClusterIPservice端 口的数据,转发到后端pod的kube-proxy中,然后kube-proxy内部实现负载均衡方法,查 询到ClusterIPservice下对应的pod的地址和端口,进而把数据转发给对应pod的地址和 端口。 2NodePort类型:NodePort类型的服务,在创建Service的时候将服务类型设置NodePort即 可。设置服务类型为NodePort时,集群会在每个节点上打开一个端口,可以通过节点的IP+ 节点端口访问节点,然后节点把流量重定向到集群的Service服务,最后通过集群的IP+集群 端口,负债均衡到后端的Pod应用。当服务类型设置为NodePort时,外部流量不仅可以通过 集群IP+端口访问后端Pod应用,还可以通过节点的ip+端口访问集群服务,然后通过集群服 务负载到后端Pod应用中。 3LoadBalancer类型:LoadBalancer类型的Service通常和云厂商的LB结合一起使用,用于 将集群内部的服务暴露到外网,云厂商的LoadBalancer会给用户分配一个IP,之后通过该 IP的流量会转发到你的Service上。来自外部负载均衡器的流量将被定向到后端Po 其工作原理取决于云提供商。一些云提供商允许指定LoadBalancerIP。在这些情况下,将使 用用户指定的LoadBalancerIP创建负载均衡器。 (38)天翼云CT-CCE产品功能 1一站式部署和运维:一键创建Kubernetes集群,自动化部署、运维容器应用,整个生命周期 都在容器服务内一站式完成。 2丰富的应用调度策略:支持多种亲和反亲和调度策略,用户可方便地根据应用特点在高性能 和高可靠中找到平衡点。 3灵活的弹性伸缩策略:支持按性能、按时间、按周期的弹性伸缩策略,用户可自由组合策略 以应对多变的突发浪涌。 4兼容原生Kubernetes和Docker:紧跟社区,3个月同步最新版本,兼容原生API和命令行。 5可定制化的DevOps能力:支持Java/Python/Go/Nod 镜像能力。 6与天翼云其它资源深度整合:支持在容器中使用云主机、VP (39)天翼云容器引擎CT-CCE优势 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —53— 1简易快捷:提供一站式容器集群管理运维服务,直观的图形化编排工具,快速部署,缩短应 用上市周期。 2灵活托管:自动化弹性伸缩集群资源,可选配置负载均衡,保障业务稳定。 3开放兼容:全面兼容Kubernetes/Docker社区原生版本,对接百万Docker镜像仓库。 4低成本:容器集群管理服务目前完全免费,只需为云服务资源按需付费。 (40)天翼云容器引擎CT-CCE应用场景:DevOps持续集成交付、互联网应用快速上线、企业架构转型。 (41)登录云容器引擎CC 息。左侧导航是CCE服务的目录,包括总览、应用管理、资源管理、配置中心和镜像仓库等。 (42)虚拟机集群:集群是计算资源的集合,包含一组节点资源,容器运行在节点上。在创建容器应用 前,您需要存在一个可用集群; (43)节点管理:节点是指接入到平台的计算资源,包括虚拟机等。用户需确保所在项目节点资源充足, 若节点资源不足,会导致创建应用等操作失败; (44)存储管理:存储管理即容器存储管理服务,主要负责不同后端存储服务的统一管理。 (45)配置中心:配置项是一种用于存储应用所需配置信息的资源类型,内容由用户决定。资源创建完 成后,可在容器应用中加载使用。例如,在卷中加载资源文件,使其成为容器中的文件,或者在 “环境变量”中加载,使其成为容器中的环境变量。 (46)镜像仓库:镜像仓库是用于存储、管理docker容器镜像的场所,可以让使用人员轻松存储、管理、 部署docker容器镜像; (47)天翼云Serverless容器服务的定义:Serverless容器服务(CT-CSK,CloudServerlessKubernetes) 是基于天翼云弹性计算基础架构以及Kubernetes为用户提供的一种容器服务产品。用户无需购买 节点,即可部署基于Kubernetes的容器应用,降低运维难度。本产品支持按需付费,根据用户使 用的CPU与内存资源量进行计费,为用户节省成本。 (48)天翼云Serverless容器服务的功能: 1集群管理 2应用管理 3配置项管理 4支持使用容器镜像仓库 5灵活弹性伸缩 6持续监控维持稳定 (49)天翼云Serverless容器服务的优势 1简单易用 天翼云认证高级运维工程师重点知识手册v3.1.0 中国电信集团内部学习资料! —54— 2降低成本 3安全可靠 4开放兼容 (50)天翼云Serverless容器服务的应用场景 1应用托管 2弹性业务 3复杂大规模业务场景 4在线弹性业务场景 (51)Serverless容器服务与容器引擎的区别: Serverless容器服务不涉及资源节点的管理,对于用户来讲,容器组以下的资源无需关心,仅需 要关注应用的运行。容器引擎将容器运行的集群资源也交付给了用户,对用户感知集群状态具有 一定的帮助,但相应的也会为您维护节点等资源带来额外的工作量。 (52)Serverless容器服务常用于容器应用的托管,用户可以通过上传私有镜像或通过天翼云提供的官 方镜像,完整搭建或移植本地的容器应用,将底层运维交给天翼云,减轻维护负担,并节省成本。 (53)Serverless常常应用于运维难度高,使用时间短但资源耗费大,具有降低成本要求的业务。 (54)环境变量是指容器运行环境中设定的一个变量,用户可以在创建容器模板时设定不超过30个的环 境变量;环境变量可以在应用部署后修改,为应用提供极大的灵活性。 (55)集群删除之后,部署在集群上的应用也会同步删除,无法恢复,请用户慎重删除集群。 (56)建议用户在进行集群删除前,自行进行文件及数据的保存与备份,目前Serverless容器服务暂时 不具备备份功能。
1 2