第1节 kubernetes-为什么要学习k8s
K8S 在企业中应用场景?
1) 自动化运维平台
* 中小型企业, 使用K8S构建一套自动化运维平台(降本增效)
* 大型互联网公司更要使用
2) 充分利用服务器资源
3) 服务无缝迁移
第2节 kubernetes-服务部署模式
服务部署模式变迁&以及服务部署模式变化的问题思考?
1) 服务部署模式是如何变迁的?
* 物理机部署 (就是直接把服务部署在物理机上面)
* 虚拟化(虚拟机)方式 (就是把服务部署在虚拟机中, 虚拟机分隔物理资源—充分利用服务器资源)
* 容器化方式进行部署
2) 服务部署模式变化, 带来哪些问题?
前提条件: SOA架构, 微服务架构模式下, 服务拆分越来越多, 部署维护的服务越来越多, 如此多的服务如何去管理?
* 虚拟机服务部署方式 (openstack)
* 容器化部署模式 (K8S — 管理容器)
面临问题: SOA架构, 微服务架构模式下, 服务拆分越来越多, 部署维护的服务越来越多, 面临什么样问题?
* 如何对服务进行横向扩展
* 容器宕机怎么办? 数据怎么恢复
* 重新发布新的版本如何更新, 更新后, 不影响业务
* 如何监控容器
* 容器如何调度创建呢?
* 数据安全性如何保证
解决方案: 使用K8S管理容器, 以上的问题, K8S都可以完美的解决.
第3节 kubernetes-云架构&云原生
1) 云 和 K8S 是什么关系呢?
* 云 就是使用容器构建的一套服务集群网络, 云由很多的大量构成
* K8S 就是用来管理云中的容器
2) 云架构
* iaas 基础设施即服务
* 用户: 租用(购买|分配权限) 云主机, 用户就不需要考虑网络, DNS, 存储, 硬件环境方面的问题
* 运营商: 提供网络, 存储, DNS, 这样服务就叫基础设施服务
* paas 平台即服务 MYSQL \ ES \ MQ \ …….
* saas 软件即服务 钉钉 财务管理
* serverless
* server 服务 less 无 — 无服务 — 不需要服务器
站在用户的角度考虑问题, 用户只需要使用云服务器即可, 在云服务器所有的基础环境, 软件环境都不需要用用户自己考虑
未来: 服务开发都serverless, 企业都构建了自动的私有云环境, 或者是使用公有云服务
3) 云原生
* 就是为了让应用程序 (项目, 服务软件) 都运行在云上的解决方案, 这样方案叫云原生
特点:
(1) 容器化 — 所有的服务都必须部署在容器中
(2) 微服务 — web服务架构师微服务架构
(3) CI/CD
(4) DevOps
第4节 kubernetes-k8s架构基本原理
1) kubernetes 是google公司使用go语言开发. borg系统
2) kubernetes 架构
* master节点
* api server k8s网关, 所有的指令请求都必须要经过api server
* scheduler 调用器, 使用调度算法, 把请求资源高度某一个node节点
* controller 控制器, 维护k8s资源对象
* etcd 存储资源对象
* node节点
* docker 运营容器的基础环境, 容器引擎
* kubelet 在每一个node节点都存在一份, 在node节点上的资源操作指令由kubelet来执行
* kube-proxy 代理服务, 负载均衡
* fluented 日志收集服务
* pod 是K8S管理的基本单元(最小单元), pod内部是容器. K8S不直接管理容器, 而是管理pod.
关系: 一个Master对应一群node节点.