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