Docker容器技术应用 课件 项目9 部署和管理Kubernetes集群.pptx
项目九部署和管理Kubernetes集群Docker容器技术应用
学习目标(1)了解Kubernetes(2)理解Kubernetes的体系架构(3)理解Kubernetes的相关概念(4)了解Kubernetes集群的管理(5)掌握配置Kubernetes集群各节点系统环境的方法(6)掌握部署Kubernetes集群的方法(7)掌握Kubectl基本操作(8)掌握通过YAML文件创建Pod的方法(9)掌握通过标签调度Pod的方法(10)掌握通过YAML文件创建Deployment的方法(11)掌握多容器共享Volume的方法
9.1.1Kubernetes概述
Kubernetes概述1.Kubernetes的主要功能(1)容器编排:Kubernetes管理集群中容器的调度,维持应用程序所需的状态。(2)自我修复:在节点产生故障时,在预期副本数量不变的情况下,终止健康检查失败的容器并部署新的容器,保证服务不会中断。(3)存储部署:Kubernetes挂载外部存储系统,将这些存储作为集群资源的一部分,增强存储的灵活性。(4)弹性伸缩:Kubernetes可以使用命令或基于CPU使用情况快速启动扩容和缩容应用程序,保证在高峰期的高可用性和业务低谷期回收资源。(5)资源监控:工作节点集成Advisor资源收集工具,可以快速实现对集群资源的监控。(6)认证授权:限制用户是否有权限使用API进行操作,精细化权限分配。
Kubernetes概述(7)密钥管理:Kubernetes允许存储和管理敏感信息,如密码、OAuth令牌和SSH密钥。用户可以部署或更新机密和应用程序配置,而无须重建容器镜像,不会在堆栈配置中暴露机密。(8)回滚更新:Kubernetes采用滚动更新策略更新应用,一次更新一个Pod,当更新过程中出现问题时,Kubernetes会进行回滚更新,保证升级业务不受影响。(9)服务发现:Kubernetes允许一个应用程序找到和连接到Kubernetes集群中的其他服务,通常采用的服务发现机制会为同一个pod里的容器自动设置环境变量、服务的DNS记录等。(10)负载均衡:将网络请求均匀地分配到不同的Pod上,确保每个Pod都能接收到相同数量的请求,避免某些Pod过载而其他Pod空闲的状况。Kubernetes常用的负载均衡方式包括kube-proxy、Ingress控制器以及使用外部负载均衡器等。
Kubernetes概述2.Kubernetes的优势(1)Kubernetes系统不仅可以实现跨集群调度、水平扩展、监控、备份、灾难恢复,还可以解决大型互联网集群中多任务处理的问题。(2)Kubernetes遵循微服务架构理论,将整个系统划分为多个功能各异的组件。各组件结构清晰、部署简单,可以非常便捷地运行在系统环境中。(3)利用容器的扩容机制,系统将容器归类,形成“容器集”(Pod),用于帮助用户调度工作负载,并为这些容器提供联网和存储服务。
9.1.2Kubernetes的体系架构
Kubernetes的体系架构Kubernetes集群主要由控制节点Master和多个工作节点Node组成,两种节点分别运行着不同的组件。Master负责集群的管理,协调集群中的所有行为或活动,如应用的运行、修改、更新等;Node负责接收Master的工作指令并执行相应的任务。集群状态存储系统Etcd为系统提供数据存储服务,Kubernetes架构图如图所示。
Kubernetes的体系架构1.Master节点及其组件控制节点Maser是整个集群的核心,主要负责组件或者服务进程的管理和控制,如追踪其他服务器的健康状态、保持各组件之间的通信、为用户或服务提供API接口等。Master的所有组件通常会在一台主机上部署和启动,但是不在此主机上运行用户容器。在控制节点Master上部署以下三种组件:(1)APIServer:整个系统的核心组件,是Kubernetes集群的入口,负责处理来自客户端的请求,包括对资源的增、删、改、查操作以及监控等操作。APIServer还通过RESTAPI接口提供认证授权、数据校验以及集群状态变更等功能,是其他模块之间数据交互和通信的中枢。另外,APIServer是整个Kubernetes集群操作Etcd存储系统的唯一入口,确保集群数据的一致性和安全性。(2)Scheduler:监视新创建且未分配工作节点的Pod,根据不同的需求将其分配到工作节点中运行,同时允许用户根据实际需求定制调度策略,实现工作负载管理和资源调度,确保工作负载的合理分布和资源的有效利用。(3)ControllerManager:集群的管理控制中心,负责管理集群中各种控制器Controllers,这些Controllers