K8S概念及特征

k8s概念

kubernets, google开源的一个容器编排引擎。 用于管理多个主机上的容器化应用,部署容器的应用简单、高效;提供了应用部署、规划、更新、维护机制

传统部署通过插件或者脚本来安装应用,缺点:应用的运行、配置、管理与当前操作系统绑定,不利于升级更新、回滚(通过虚拟机方式创建,虚拟机非常重,可移植性差)
新方式通过部署容器方式实现
1. 每个容器相互隔离,相对虚拟机,容器能快速部署,并且与底层设施、机器文件系统解耦,移植性好
2. 容器占用资源少、部署块,每个应用可被打包成一个容器镜像,不依赖与生产环境的基础结构,从研发、到测试、生产能提供一致的环境,并且容器更透明,便于监控和管理

部署方式

传统部署

互联网早起,会直接将应用程序部署到物理机上
优点:简单、不需要其他技术参与
缺点:不能为应用程序定义资源边界,很难合理分配计算资源

虚拟化部署

可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立环境
优点:程序环境不会相互影响,提供了一定程序的安全性
缺点:增加了操作系统,浪费了部分资源

容器化部署

与虚拟化类似,但共享操作系统
优点:每个容器有独立的文件系统、CPU、内存、进程空间;允许资源被容器封装,与底层隔离;可以跨云、操作系统发布

容器化问题

容器故障,如何让另一个容器立刻启动去替补停机的容器
当并发访问量大时,如何做到横向扩展容器数量

容量编排

Swarm   Docker自己的容器编排工具
Mesos  Apache的资源统一管理工具
Kubernets google开源的容器编排工具

特点

k8s: 全新的基于容器技术的分布式架构领先方案,14年第一版本, 15年第二个版本
一组服务器集群, 可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理,目的是实现资源管理的自动化
自我修复: 一旦某一个容器崩溃,能够1秒内迅速启动新的容器
弹性伸缩:可以跟进需要,自动对集群中正在运行的容器数量进行调整
服务发现: 服务通过自动发现的形式找到它所依赖的服务
负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡
版本回退:如果发现程序版本有问题,可以立即回退到原来的版本
存储编排:可以根据容器自身的需求,自动创建存储卷

部署过程

以部署一个nginx服务来说明kubernetes系统各个组件调用关系:

  1. 首先要明确,一旦kubernetes环境启动之后,master和node都会将自身的信息存储到etcd数据库中
  2. 一个nginx服务的安装请求会首先被发送到master节点的apiServer组件
  3. apiServer组件会调用scheduler组件来决定到底应该把这个服务安装到哪个node节点上,
    • 在此时,它会从etcd中读取各个node节点的信息,然后按照一定的算法进行选择,并将结果告知apiServer
  4. apiServer调用controller-manager去调度Node节点安装nginx服务
  5. kubelet接收到指令后,会通知docker,然后由docker来启动一个nginx的pod
  6. pod是kubernetes的最小操作单元,容器必须跑在pod中至此,

一个nginx服务就运行了,如果需要访问nginx,就需要通过kube-proxy来对pod产生访问的代理

这样,外界用户就可以访问集群中的nginx服务了

参考:1.Kubernetes介绍-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值