Kubernetes简介

avatar 2020年4月12日18:03:21 评论 1,307 次浏览

Kubernetes是目前很多大企业都选择的一个容器平台,Kubernetes经过这么多年的更新迭代,到现在已经比较成熟了。有些企业选择使用Kubernetes,肯定做了很多准备,有的没有使用或者说使用了一段时间又不用了,可能是准备的不充分,或者使用者没有考虑周全的原因。这里我就把我使用的一些经验做一个分享,有不足之处,还望多多理解并留言提出来,大家一起改进。

Kubernetes简介

Kubernetes又称k8s,因为Kubernetes的第一个字母和最后一个字母间隔8个字母所以简称k8s。Kubernetes主要包括两种资源分别是Master和Nodes节点。Master主要负责集群的管理和协调集群中的所有行为或活动,例如:应用的运行、修改、更新等。应用程序运行在Nodes节点上,每个Nodes节点有一个Kubelet,负责和Kubernetes master通信,还要有一个container runtime(CRI)负责管理镜像以及pod和容器的运行。首先,我们要理解master和node都是运行在宿主机上的,master里安装了哪些程序如何和node通信,管理node中的pod以及pod中的容器的,别急,慢慢来。先看一个效果图

Kubernetes包含以下几个核心组件:

* etcd      保存Kubernetes Cluster的配置信息和各种资源的信息,一旦数据发生变化,会快速的通知其他组件;
* apiserver 提供资源操作入口,并提供认证,授权,访问控制,API注册和发现等机制;
* controller manager 负责集群的状态,比如故障检测,自动扩展,滚动更新等;
* scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
* kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
* Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
* kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡;
* flannel网络 负责各个节点上的pod通信,也可以使用calico(两者的区别请查看flannel和calico)

Kubernetes其他组件

除了核心的组件外,推荐几个比较常用的组件

* kube-dns 负责为整个集群提供DNS服务
* Ingress Controller为服务提供外网入口
* Heapster 提供资源监控
* Dashboard提供GUI
* Federation提供跨可用区的集群
* Fluentd-elasticsearch提供集群日志采集,存储与查询

Kubernetes特点

* 快速部署应用
* 快速扩展应用
* 无缝对接新的应用功能
* 节省资源,优化硬件资源的使用
* 可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
* 可扩展:模块化,插件化,可挂载,可组合
* 自动化:自动部署,自动重启,自动复制,自动伸缩/扩展
avatar
  • 未经博主允许,禁止转载本博客任何内容,如需转载请留言,谢谢合作!!!
  • 转载注明:Kubernetes简介 | 吴老二

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: