kubernetes简介
1,kubernetes是什么?
kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩容缩,维护等功能,
特点:
可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
可扩展:模块化,插件化,可挂载,可组合
自动化:自动部署,自动重启,自动复制,自动伸缩扩展
kubernetes是Google2014年创建管理的,是Google十多年大规模容器管理技术Borg的开源版本
容器优势总结:
1,快速创建/部署应用:与MV虚拟化相比,容器镜像的创建更加容易
2,持续开发,集成和部署:提供可靠且频繁的容器镜像构建/和部署,并使用快速简单的回滚
3,开发和运行相分离:在bulid或者release阶段创建容器镜像,使得是应用和基础设施解耦
4,开发,测试和生产环境一致性:在本地或者外网(生产环境)运行的一致
5,云平台或者其他操作系统:Ubuntu,RHEL,CoreOS,on-prem Google container Engine 或者其他任何环境中运行
6,Loosely coupled,分布式,弹性,微服务化:应用程序分为更小的,独立的部件,可以动态部署和管理
7,资源隔离
8,资源利用率:更高效
kubernetes组件
Master组件
1,kube-apiserver
kube-apiserver用于暴露kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行的。
2,ETCD
etcd是kubernetes提供的默认的存储系统,是保存所有集群数据,使用时需要为etcd数据提供备份计划
3,kube-controller-manager
kube-controller-manager运行管理控制器,他们是集群中处理常规任务的后台线程,逻辑上,每个控制器是单独的线程,单位了降低复杂性,他们都被编译成了单个的二进制文件并在单个进程中运行
这些控制器包括:
节点控制器(node)
副本节点控制器(Replication):负责维护统中每个副本中的pod
端点控制器(Endpoints):填充Endpoints对象(连接service&&pods)
Servive Account和token控制器:为新的Namespace创建默认账户访问API token
4,kube-scheduler
kubr-scheduler监视新创建没有分配到Node的pod,为pod选择一个Node
5,插件addons
插件(addon)是实现集群pod和service功能的,Pod有Deployment,ReplicationController等进行管理的Namespace插件对象是在kube-system Namespace中创建的。
Node节点组件
节点组件运行在Node,提供kubernetes运行环境时以及维护pod
1,kubelet
kubelet是主要的代理的节点,它会监视已分配给节点的pod,具体功能:
1,安装pod所需要的volume
2,下载pod的secrets
3,pod中运行的docker容器
4,定期执行容器健康检查
5,通过在必要时创建镜像pod,将pod的状态报告给系统的其他部分
6,向系统的其他部分报告节点的状态
2,kube-proxy
官方介绍:https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/
kube-proxy是是通过在主机上维护网络规则并执行连接转发来实现kubernetes服务抽象
Kubernetes网络代理在每个节点上运行。这反映了每个节点上Kubernetes API中定义的服务,并且可以在一组后端上执行简单的TCP,UDP和SCTP流转发或循环TCP,UDP和SCTP转发。当前可通过与Docker链接兼容的环境变量找到服务集群的IP和端口,这些环境变量指定了服务代理打开的端口。有一个可选的插件,可以为这些群集IP提供群集DNS。用户必须使用apiserver API创建服务才能配置代理。
3,docker
docker是用于运行容器
了解kubernetes对象
kubernetes对象是kubernetes系统中的持久实体,kubernetes使用这些实体来表示集群的状态。具体来说可以描述:
1,容器化应用正在运行(以及在哪些节点上)
2,这些应用的可用资源
3,关于这些应用是如何运行的策略如重新策略,升级和错容
对象(object)和规范状态
每个kukbernetes对象都包含两个嵌套对象字段,用于管理object的配置:object spec和object status。spec描述了对象所需的状态,希望object具有的特征,status描述了对象的实际状态,并由kubernetes系统提供和更新
网友评论