【51CTO.com原创稿件】上一篇文章我们着重讲解了 Docker,其实遗留了一个大问题 。Docker 虽好用,但面对强大的集群,成千上万的容器,突然感觉不香了 。
文章插图
图片来自 Pexels
这时候就需要我们的主角 Kubernetes 上场了,先来了解一下 K8s 的基本概念,后面再介绍实践,由浅入深步步为营 。
关于 K8s 的基本概念我们将会围绕如下七点展开:
- Docker 的管理痛点
- 什么是 K8s?
- 云架构 & 云原生
- K8s 架构原理
- K8s 核心组件
- K8s 的服务注册与发现
- 关键问题
如果想要将 Docker 应用于庞大的业务实现,是存在困难的编排、管理和调度问题 。
于是,我们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理 。
Kubernetes 应运而生!Kubernetes,名词源于希腊语,意为「舵手」或「飞行员」 。
文章插图
google 在 2014 年开源了 Kubernetes 项目,建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践 。
K8s 是 Kubernetes 的缩写,用 8 替代了 「ubernete」,下文我们将使用简称 。
什么是 K8s ?
文章插图
K8s 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化 。
K8s 拥有一个庞大且快速增长的生态系统 。K8s 的服务、支持和工具广泛可用 。
通过 K8s 我们可以:
- 快速部署应用
- 快速扩展应用
- 无缝对接新的应用功能
- 节省资源,优化硬件资源的使用
- 可移植:支持公有云,私有云,混合云,多重云 multi-cloud 。
- 可扩展:模块化,插件化,可挂载,可组合 。
- 自动化:自动部署,自动重启,自动复制,自动伸缩/扩展 。
①云和 K8s 是什么关系
云就是使用容器构建的一套服务集群网络,云由很多的大量容器构成 。K8s 就是用来管理云中的容器 。
②常见几类云架构
文章插图
常见几类云架构如上图所示:
- On-Premises(本地部署) 。
- IaaS(基础设施即服务):用户:租用(购买|分配权限)云主机,用户不需要考虑网络,DNS,硬件环境方面的问题;运营商:提供网络,存储,DNS,这样服务就叫做基础设施服务 。
- PaaS(平台即服务):MySQL/ES/MQ/...
- SaaS(软件即服务):钉钉,财务管理 。
- Serverless:无服务,不需要服务器 。站在用户的角度考虑问题,用户只需要使用云服务器即可,在云服务器所在的基础环境,软件环境都不需要用户关心 。
https://www.zhihu.com/question/21641778/answer/62523535
可以预见:未来服务开发都是 Serverless,企业都构建了自己的私有云环境,或者是使用公有云环境 。③云原生
为了让应用程序(项目,服务软件)都运行在云上的解决方案,这样的方案叫做云原生 。
云原生有如下特点:
- 容器化,所有服务都必须部署在容器中
- 微服务,Web 服务架构式服务架构
- CI/CD
- DevOps
①K8s 架构
文章插图
概括来说 K8s 架构就是一个 Master 对应一群 Node 节点 。下面我们来逐一介绍 K8s 架构图中的 Master 和 Node 。
Master 节点结构如下:
- apiserver 即 K8s 网关,所有的指令请求都必须要经过 apiserver 。
- Scheduler 调度器,使用调度算法,把请求资源调度到某一个 Node 节点 。
- Controller 控制器,维护 K8s 资源对象 。
- etcd 存储资源对象 。
- Kubelet 在每一个 Node 节点都存在一份,在 Node 节点上的资源操作指令由 Kubelet 来执行 。
- Kube-proxy 代理服务,处理服务间负载均衡 。
- Pod 是 K8s 管理的基本单元(最小单元),Pod 内部是容器,K8s 不直接管理容器,而是管理 Pod 。
- Docker 运行容器的基础环境,容器引擎 。
推荐阅读
- 地球上的外星生物 人类是外星生物吗
- 绿豆南瓜汤可以减肥吗?
- 人类是外星生物吗 人类是外星物种吗
- 炸糯米球要放泡打粉吗?
- 羊奶壮阳吗
- 金丝皇菊原产地是哪里,金丝皇菊有毒吗
- 食用油能当润滑油吗?
- 食用油可以代替黄油吗?
- 喝奶茶会长胖吗,吃奶茶上火吗
- 产妇可以吃基围虾吗?