kubernetes在企业的用途
kubernetes,简称 K8s,是用 8 代替中间 8 个字符 “ubernete” 而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且powerful,Kubernetes 提供了应用部署,规划,更新,维护的一种机制。
kubernetes 架构原理
k8s 是由 Google 公司 用go 语言开发的。google 在全球有相当多的服务器,当然需要一个管理软件。Google内部本身就有一个叫 borg 的系统云平台管理工具,已经使用了十几年。后来参照 borg 系统架构开发了 k8s,主要用它来编排、管理容器,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
k8s 基本特点:
1:可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
2:可扩展: 模块化,插件化,可挂载,可组合
3:自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
使用k8s 来构建一套自动化运维平台,提供了应用部署,规划,更新,维护的一种机制。
对于大型互联网公司更要使用容器化部署。现在服务器越来越多,不可能都人工部署,需要使用自动化的运维平台来监控服务,来实现自动服务化的部署、运维。
要充分利用服务器资源,就要使用容器化解决方案,在服务器部署多个容器,容器当中运行着我们部署的各种服务
服务部署模式是如何变迁的呢
1:物理机:传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作。
2:虚拟化
虚拟机
:当然上面的问题可以通过创建虚拟机的方式来实现某些功能,但是虚拟机本身就很占用资源,并不利于可移植性。(就是把服务部署在虚拟机中,达到分隔物理资源的作用——充分利用服务器资源)
3:容器部署:每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。而且更轻量级、运行效率更快。
服务部署模式变化,带来了哪些问题
前提条件:SOA 架构,微服务架构模式下,服务拆分越来越多,部署维护的服务越来越多,该如何管理?
容器化部署问题:
如何对服务横向扩展?容器宕机怎么办?如何恢复?重新发布版本如何更新且更新后不影响业务?如何监控容器?容器如何调度创建?数据安全性如何保证?使用 k8s 管理容器就可解决。
k8s:用来管理云中的容器,云:使用容器构建的一套服务集群网络,云是由很多的容器构成。
云架构:
iaas:基础设施即服务
用户角度:租用(购买或分配权限)云主机,用户不用考虑网络、DNS、存储和硬件环境等方面的问题。
运营商角度:提供网络、DNS、存储等这样的服务就叫做基础设置服务。
paas:平台即服务
在平台上提供了很多服务,如 MySQL 服务、Redis 服务、MQ 服务、Elasticsearch 服务等等。
saas:软件即服务
钉钉、财务管理等等,一些软件维护工作都是由运行商来做,用户只管体验软件提供的服务就行了。
serverless:server 服务,less 无 —— 无服务 不需要服务器
站在用户角度考虑问题,用户只需要使用云服务器即可。
在云服务器上的所有的基础环境、软件环境都不需要考虑和维护,非常方便。
未来开发的趋势都是 severless,企业都构建了自己的私有云或者公有云环境。使用 k8s 构建非常方便。
云原生
为了让应用程序(项目,服务软件)都运行在云上的解决方案,这样方案叫做云原生,有以下特点:
1:容器化:所有的服务都必须部署在容器中。
2:微服务:web 服务架构是微服务架构
3:CI/CD:可持续交互和可持续部署
4:DevOps:开发和运维密不可分
kubernetes 架构原理
k8s 是由 Google 公司 用go 语言开发的。google 在全球有相当多的服务器,当然需要一个管理软件。Google内部本身就有一个叫 borg 的系统云平台管理工具,已经使用了十几年。后来参照 borg 系统架构开发了 k8s,主要用它来编排、管理容器,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
k8s 基本特点:
1:可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
2:可扩展: 模块化,插件化,可挂载,可组合
3:自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
使用k8s 来构建一套自动化运维平台,提供了应用部署,规划,更新,维护的一种机制。
对于大型互联网公司更要使用容器化部署。现在服务器越来越多,不可能都人工部署,需要使用自动化的运维平台来监控服务,来实现自动服务化的部署、运维。
要充分利用服务器资源,就要使用容器化解决方案,在服务器部署多个容器,容器当中运行着我们部署的各种服务
服务部署模式是如何变迁的呢
1:物理机:传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作。
2:虚拟化
虚拟机
:当然上面的问题可以通过创建虚拟机的方式来实现某些功能,但是虚拟机本身就很占用资源,并不利于可移植性。(就是把服务部署在虚拟机中,达到分隔物理资源的作用——充分利用服务器资源)
3:容器部署:每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。而且更轻量级、运行效率更快。
服务部署模式变化,带来了哪些问题
前提条件:SOA 架构,微服务架构模式下,服务拆分越来越多,部署维护的服务越来越多,该如何管理?
容器化部署问题:
如何对服务横向扩展?容器宕机怎么办?如何恢复?重新发布版本如何更新且更新后不影响业务?如何监控容器?容器如何调度创建?数据安全性如何保证?使用 k8s 管理容器就可解决。
k8s:用来管理云中的容器,云:使用容器构建的一套服务集群网络,云是由很多的容器构成。
云架构:
iaas:基础设施即服务
用户角度:租用(购买或分配权限)云主机,用户不用考虑网络、DNS、存储和硬件环境等方面的问题。
运营商角度:提供网络、DNS、存储等这样的服务就叫做基础设置服务。
paas:平台即服务
在平台上提供了很多服务,如 MySQL 服务、Redis 服务、MQ 服务、Elasticsearch 服务等等。
saas:软件即服务
钉钉、财务管理等等,一些软件维护工作都是由运行商来做,用户只管体验软件提供的服务就行了。
serverless:server 服务,less 无 —— 无服务 不需要服务器
站在用户角度考虑问题,用户只需要使用云服务器即可。
在云服务器上的所有的基础环境、软件环境都不需要考虑和维护,非常方便。
未来开发的趋势都是 severless,企业都构建了自己的私有云或者公有云环境。使用 k8s 构建非常方便。
云原生
为了让应用程序(项目,服务软件)都运行在云上的解决方案,这样方案叫做云原生,有以下特点:
1:容器化:所有的服务都必须部署在容器中。
2:微服务:web 服务架构是微服务架构
3:CI/CD:可持续交互和可持续部署
4:DevOps:开发和运维密不可分