[官网]:https://kubernetes.io/:https://github.com/kubernetes/kubernetes[中文社区]:https://www.kubernetes.org.cn/[文档]:https://www.kubernetes.org.cn/k8s[下载]:https://github.com/GoogleCloudPlatform/kubernetes/releases:wget https://github.com/kubernetes/kubernetes/releases/download/v1.12.9/kubernetes.tar.gz
云计算飞速发展- IaaS- PaaS- SaaSDocker技术突飞猛进- 一次构建,到处运行- 容器的快速轻量- 完整的生态环境
kubernetes ,简称K8s,Google开源的一个容器编排引擎,用于管理云平台中多个主机上的容器化的应用,支持自动化部署、大规模可伸缩、应用容器化管理。
在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
基于容器技术的分布式架构领先方案,容器集群管理系统,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。
同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。
应用部署 简介
传统应用部署方式是通过插件或脚本来安装应用。缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。
基本概念
[cluster]: 计算、存储、网络资源的整合。k8s利用这些资源去运行各种基于容器的应用。[Master]:集群主节点,这个相当于人的大脑,我们的一切行为都是大脑去调配。:负责分配和调度任务。决定将应用放在哪里去执行。:Master运行与 linux 上,可以使物理机也可以是虚拟机。为了可以实现高可用,可以部署多个Master节点。[Node]:听从Master的调配并负责容器 docker 的应用。:Node由Master管理,去负责监控并汇报容器的状态,同时根据 Master的要求去管理容器的生命周期。:运行在 linux 上,可以是物理机也可以是虚拟机。[Pod]:Pod是k8s调度的最小单元。每一个Pod包含一个或多个容器。:pod中的容器会作为一个整体被Master调度到一个node上运行。[rc控制文件]:管理配置[Service]:提供服务的,想要跑起来非得靠它不可[Namespace]:类似于数据库中有多个用户,创建了30个视图,每个视图需要分配给不同的用户,并同时将他们的资源切割开来。:其实就便于管理[helm包]:包管理工具,类似与debian、乌班图得apt,红帽和centos上的 yum 仓库一样[kube-proxy]:负载均衡功能
