虚拟化容器,大数据,DBA,中间件,监控。

k8s功能特性(二)

11 11月
作者:admin|分类:容器虚拟化

k8s功能特性

1.k8s的核心功能

1.1.自愈

  • 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播

  • 自愈功能就好比是当一个容器在一个节点上不可用了,会迅速的迁移到另一个可用的node节点,保证业务的高可用

1.2.弹性伸缩

  • 弹性伸缩也是水平扩展

  • 弹性伸缩可以根据容器的负载自动的增加或者减少容器

  • 弹性伸缩常用于SOA架构,SOA(把每一个功能都拆成一个独立的web服务,每一个独立的wbe服务都有一个集群)

  • 通过监控容器的CPU的负载值,如果这个平均值高于80%,则会增加容器的数量,如果平均值低于10%则会减少容器的数量

  • 弹性伸缩是监控的web服务器的CPU,当访问特别多的时候会增加web容器的数量并自动加入到负载均衡中保障业务的可用性,当容器压力恢复后自动把容器减少

1.3.服务的自动发现和负载均衡

  • 不需要修改应用程序来使用不熟悉的发现机制,k8s为容器提供了自己的ip地址和一组容器的单个dns名称,并可以在他们之间自动的负载均衡
  • 比如nginx负载均衡,当有一个节点起来了,我们需要手动更改配置文件才能生效,但是k8s就不用去修改配置文件会自动的将节点加入到集群中

1.4.滚动升级和一键回滚

  • k8s逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例,如果有问题会恢复所有的更改
  • 滚动升级就类似于一批一批的升级,如果这一批用户使用过程中没有bug的存在,会接着升级,最后达到全范围的升级
  • 一键回滚表示当这批用户觉得有不好的体验,k8s会自动的回滚的上一个版本

2.k8s核心组件

kubernetes遵循master-slave,kubernetes的组件可以分为管理单个node组件控制平面的一部分组件

kubernetes master是集群的主要控制单元,用于管理其工作负载均衡并指导整个系统的通信。kubernetes控制平面由各自的进程组成,每个及组件都可以在单个主节点上运行,也可以在支持high-availability clusters的多个主节点上运行

kubernetes主要由以下几个核心组件组成

组件名称 说明
etcd 保存了整个集群的状态
apiserver 提供了资源操作的唯一入口,任何k8s的操作都有apiserver来传递给各个node节点
controller manager 负责维护集群状态,比如故障检测、自动扩展,当某一个节点上发生了故障,controller会将docker自动迁移至正常的节点上保证业务的高可用
scheduler 负责资源调度,当需要创建容器时,scheduler会根据每个节点的负载情况,当负载一致时就会按着顺序来创建docker容器
kubelet 负责维护容器的生命周期,用来运行docker容器
container runtime 负责镜像管理以及pod和容器的真正运行
kube-proxy 负责为service提供端口映射

除了核心组件,还有一些推荐的add-ons

组件名称 说明
kube-dns 负责为整个集群提供dns服务
ingress controller 为服务提供外网入口
heapster 提供资源监控
deshborard 提供gui
federation 提供跨可用区的集群
fluentd-elasticsearch 提供日志采集、存储、查询(EFK)
浏览525 评论0
返回
目录
返回
首页
k8s常用资源之rc资源(四) kubernetes架构详解及部署配置(一)