普元云计算架构师宋潇男点评:
Kubernetes 已在容器编排之战中取胜,未来很可能会成为“多云”之上的标准层,进而为分布式系统的分发和运行带来根本性的改变,而其自身则会慢慢变得像 Linux Kernel 一样,成为一种系统底层的支撑,不再引人注目。
为什么会出现k8s?
Kubernetes开源架构的源头来自于Google生产系统中运行的内部集群管理系统Borg。Google将在Borg中的10多年经验在2014年开源出来,开启了Kubernetes热潮的端倪。同年,微软、RedHat、IBM、Docker、CoreOS、Mesosphere和Saltstack等公司相继加入Kubernetes生态圈。次年,VMware、HP、Intel等公司也相继加入。也正是在2015年,随着Kubernetes 1.0正式发布,掀开了容器编排管理一发不可收拾的大幕。 Kubernetes在这场容器编排的大角逐中,从普通选手(当时Docker是容器技术的裁判,而Docker Swarm、Apache Mesos、Google Kubernetes分别是Docker容器编排的选手)逐步变成了领跑选手,进而升级为了裁判(由Kubernetes主导容器编排,而将Docker和CoreOS的Rkt等容器技术纳入容器隔离技术的角逐中),从而在容器届一骑绝尘。
接下来我们重点看看K8S,希望给以参考借鉴!要是觉得还不错,不要吝啬你手里的赞哦!!
什么是k8s?
Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用的。
它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具, 包括Docker等。CNCF于2017年宣布首批Kubernetes认证服务提供商(KCSPs),包含IBM、MIRANTIS、华为、inwinSTACK迎栈科技等服务商。
k8s能干什么?
Kubernetes可以实现在物理集群或虚拟机集群上调度和运行容器,当然它还可以做得更多。
为了充分发挥容器的优势并将传统的应用部署方式甩开,需要容器的部署与运行独立于基础设施。
然而,当特定的容器不再与特定的主机绑定时,主机为中心的基础设施也不再适用:负载均衡、自动扩展等,因此需要容器为中心的架构,这便是kubernetes所提供的。
Kubernetes满足了应用程序在生产环境中的一些通用需求,例如:
- 协同定位的辅助进程,利用复杂应用部署,并且还保持了单容器单应用的模型
- 挂载存储系统
- 分布式加密管理
- 应用健康状况检查
- 应用实例副本
- 水平自动扩展
- 命名与发现
- 负载均衡
- 滚动升级
- 资源监控
- 日志的获取和注入
- 支持自省和调试以及
- 认证和授权
上述功能提供了平台即服务(PaaS)的简易性以及基础设施即服务(IaaS)的灵活性,提升了跨基础设施移植的方便性。
集群
在集群管理方面,K8s将集群中的机器划分为一个Master节点和一群工作节点Node。Master节点上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler。这些进程自动化实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能。
K8S核心
Pod
Pod是K8s最重要也是最基础的概念!每个Pod都有一个特殊的被称为“根容器”的Pause容器,此容器与引入业务无关并且不易死亡。且以它的状态代表整个容器组的状态!Pause容器对应的镜像属于K8s平台的一部分,除了Pause容器,每个Pod还包含一个或多个用户业务容器。Pod其实有两种类型:普通的Pod及静态Pod(static Pod),static Pod并不存放在Kubemetes的eted存储里,而是存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动运行。而普通的Pod一旦被创建