Kubernetes入门指南-基础篇
由于之前也是没有怎么系统的接触过kubernetes,正好目前工作中也经常要接触到,干脆就开始学一哈
学习的来源是一个叫《kubernetes-入门指南》的PDF。。我也忘了哪里搞来的……
基础入门
kubernetes简介
kubernetes是谷歌开源的容器集群管理系统,主要功能有:
- 基于容器的应用部署、维护和滚动升级
- 负载均衡和服务发现
- 跨机器和跨地区的集群调度
- 自动伸缩
- 无状态服务和有状态服务
- 广泛的Volume支持
- 插件机制保证扩展性
kubernetes发现非常迅速,如今已经成为容器编排领域的领导者
好了扯这么多也挺抽象。。。说不定学到后面就可以理解这些功能了
kubernetes是一个平台
kubernetes提供了很多的功能,它4可以简化应用程序的工作流加快开发速度。通常一个成功的应用编排系统需要有较强的自动化能力,这也是为什么kubernetes被设计作为构建组件和工具的生态系统平台,以便更方便轻松的部署,扩展和管理应用
用户可以使用 Label 以自己的方式组织管理资源,还可以使用 Annotation 来自定义资源 的描述信息,比如为管理工具提供状态检查等。
此外,Kubernetes 控制器也是构建在跟开发人员和用户使用的相同的 API 之上。用户 还可以编写自己的控制器和调度器,也可以通过各种插件机制扩展系统的功能。
这种设计使得可以方便地在 Kubernetes 之上构建各种应用系统。
kubernetes架构
可以看出k8s的整体架构是由左边的master节点和右边的worker组成。master负责对整个集群进行管理,右边的电脑表示worker节点负责运行我们部署的容器。
kubernetes不是什么
嗯。。看看就好
核心组件
kubernetes主要是由以下几个核心组件构成的:
- etcd : 保存了整个集群的状态
- apiserver:提供了资源操作的唯一入口,并提供了认证,授权,访问控制,API注册和发现等机制
- controller manager : 负责维护集群的状态,比如故障检测,自动扩展,滚动更新等
- scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
- kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
- Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)
- kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡
kubernetes基本概念
放一个链接:http://www.dockone.io/article/932
Container
Container(容器)是一种便携式,轻量级的操作系统级虚拟化技术。它使用namespace隔离不同的软件运行环境,并通过镜像自包含软件的运行环境,从而使得容器可以很方便的在任何地方运行
由于容器体积小且启动快,因此可以在每个容器镜像中打包一个应用程序。这种一对一的应用镜像关系拥有很多好处。使用容器,不需要与外部的基础架构环境绑定,因为每一个应用程序都不需要外部依赖,更不需要与外部的基础架构环境依赖。完美解决了从开发到生产环境的一致性问题。
容器与虚拟机相比的话,更加透明,有助于监测和管理。尤其是容器进程的生命周期由基础设施管理,而不是被进程管理器影藏在容器内部。最后,每个应用程序用容器封装,管理容器部署就等于管理应用程序部署。
容器还包括一下优点: