1. [官网]
  2. https://kubernetes.io/
  3. https://github.com/kubernetes/kubernetes
  4. [中文社区]
  5. https://www.kubernetes.org.cn/
  6. [文档]
  7. https://www.kubernetes.org.cn/k8s
  8. [下载]
  9. https://github.com/GoogleCloudPlatform/kubernetes/releases
  10. wget https://github.com/kubernetes/kubernetes/releases/download/v1.12.9/kubernetes.tar.gz
  1. 云计算飞速发展
  2. - IaaS
  3. - PaaS
  4.   - SaaS
  5. Docker技术突飞猛进
  6. - 一次构建,到处运行
  7. - 容器的快速轻量
  8. - 完整的生态环境

kubernetes ,简称K8s,Google开源的一个容器编排引擎,用于管理云平台中多个主机上的容器化的应用,支持自动化部署、大规模可伸缩、应用容器化管理。

在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

基于容器技术的分布式架构领先方案,容器集群管理系统,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。

同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。

应用部署 简介

传统应用部署方式是通过插件或脚本来安装应用。缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。

容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。

基本概念

  1. [cluster]
  2. 计算、存储、网络资源的整合。k8s利用这些资源去运行各种基于容器的应用。
  3. [Master]
  4. :集群主节点,这个相当于人的大脑,我们的一切行为都是大脑去调配。
  5. :负责分配和调度任务。决定将应用放在哪里去执行。
  6. Master运行与 linux 上,可以使物理机也可以是虚拟机。为了可以实现高可用,可以部署多个Master节点。
  7. [Node]
  8. :听从Master的调配并负责容器 docker 的应用。
  9. NodeMaster管理,去负责监控并汇报容器的状态,同时根据 Master的要求去管理容器的生命周期。
  10. :运行在 linux 上,可以是物理机也可以是虚拟机。
  11. [Pod]
  12. Podk8s调度的最小单元。每一个Pod包含一个或多个容器。
  13. pod中的容器会作为一个整体被Master调度到一个node上运行。
  14. [rc控制文件]
  15. :管理配置
  16. [Service]
  17. :提供服务的,想要跑起来非得靠它不可
  18. [Namespace]
  19. :类似于数据库中有多个用户,创建了30个视图,每个视图需要分配给不同的用户,并同时将他们的资源切割开来。
  20. :其实就便于管理
  21. [helm包]
  22. :包管理工具,类似与debian、乌班图得apt,红帽和centos上的 yum 仓库一样
  23. [kube-proxy]
  24. :负载均衡功能