1.5 k8s和docker竟然如此简单?

首先这里面简单讲解下什么是docker?他能够做什么?

再讲docker之前,我们这里要讲一下在历史长河中应用容器的生存环境是怎么样子的。最早期的时候,应用运行在物理机上,物理机上的容器无法提供应用程序的资源隔离的能力,通常来说,某一台物理机上会运行多个程序,这样子会引发资源争抢的问题,而针对这个办法提出的解决方案是每个物理机上只运行一个应用程序,进而引发的是物理机的维护成本和扩展难度大等问题。

在物理机无法满足人们的需求之后,一个绝妙的方法出现了,那就是虚拟化,通过虚拟化拉实现一个物理机上运行多个虚拟机,来保障资源的隔离而且更好的利用资源实现弹性伸缩,如此来看问题是已经解决了吗?

这个时候容器出现了,它是依赖于linux的os的namespace和cgroup能力通过共享操作系统的方式实现文件系统、CPU、内存、进程空间等的隔离,可以理解为是一种轻量的VM,来实现更加快速的交付和构建,完成更为轻松的运维管理。

参考:http://www.dockerinfo.net/document

在简单的了解docker之后,我们来讲一下K8S,全称kubernetes,是2014年google结合自身的生产运维经验和社区中的优秀的想法和实践开源的一个项目,最几年云原生也变得越发的火爆。

这里先简单说一下,K8S能做些什么呢?

服务发现和负载均衡

Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果到容器的流量很大,Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。

存储编排

Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。

自动部署和回滚

您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 来为您的部署创建新容器,删除现有容器并将它们的所有资源用于新容器。

自动二进制打包

Kubernetes 允许您指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。

自我修复

Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。

密钥与配置管理

Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

参考:https://kubernetes.io/zh/docs/concepts/overview/components/

你可能感兴趣的:(1.5 k8s和docker竟然如此简单?)