什么是kubernetes【k8s】?
什么是kubernetes?kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母)Kubernetes是一款应用于集群的,容器自动部署、扩展和管理的开源平台,提供了一种以容器为中心的基础架构。
利用kubernetes,你可以快速高效地响应客户如下请求:
* 应用程序的动态、精准部署
* 应用程序的动态扩展
* 无缝推出新功能
* 按需优化使用硬件资源
我们的目标是提供一套减轻应用程序在公用云或私有云上运行负担的,生态环境的组件和工具。
就功用而言可以分为四大部分:
1.自动化容器的部署、升级和复制;
2.随时扩展或收缩容器规模,实现容器的弹性扩展;
3.以集群的方式运行、管理跨机器的容器,并且提供容器间的负载均衡;
4.Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
k8s架构图
继续补充:
K8s 介绍Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。使用Kubernetes可以:
1. 自动化容器的部署和复制
2. 随时扩展或收缩容器规模
3. 将容器组织成组,并且提供容器间的负载均衡
4. 很容易地升级应用程序容器的新版本
4. 提供容器弹性,如果容器失效就替换它,等等…
Kubernetes解决的问题:
1. 调度 - 容器应该在哪个机器上运行
2. 生命周期和健康状况 - 容器在无错的条件下运行
3. 服务发现 - 容器在哪,怎样与它通信
4. 监控 - 容器是否运行正常
5. 认证 - 谁能访问容器
6. 容器聚合 - 如何将多个容器合并成一个工程Kubernetes组件组成:
1. kubectl
客户端命令行工具,将接受的命令格式化后发送给kube-apiserver,作为整个系统的操作入口。
2. kube-apiserver
作为整个系统的控制入口,以REST API服务提供接口。
3. kube-controller-manager
用来执行整个系统中的后台任务,包括节点状态状况、Pod个数、Pods和Service的关联等。
4. kube-scheduler
负责节点资源管理,接受来自kube-apiserver创建Pods任务,并分配到某个节点。
5. etcd
负责节点间的服务发现和配置共享。
6. kube-proxy
运行在每个计算节点上,负责Pod网络代理。定时从etcd获取到service信息来做相应的策略。
7. kubelet
运行在每个计算节点上,作为agent,接受分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver。
8. DNS
一个可选的DNS服务,用于为每个Service对象创建DNS记录,这样所有的Pod就可以通过DNS访问服务了。
K8s包含概念
Cluster:集群是指由k8s使用一些列的物理机,虚拟机和其他基础资源来运行你的应用程序.
Node:一个node就是一个运行着k8s的物理机或虚拟机,平切pod可以在其上面被调度.
Pod:一个pod对应一个由相关容器和卷组成的容器组.
Label:一个label是一个被附加到资源上的键/值对,譬如附加到一个pod上,为他传递一个用户自定义并且可是别的属性.Label还可以被应用来组织和选择子网中的资源.
Selector是一个通过匹配labels来定义资源之间关系的表达式,例如为一个负载均衡的service指定pod.
Replication Controller:RC是为了保证一定数量被指定的Pod的复制品在任何时间都能正常工作.它不仅允许复制的系统易于扩展,还会处理当pod在机器重启或发生故障的时候再次创建一个.
Service:一个service定义了访问pod的方式,就像单个固定的IP地址和与其相对应的DNS之间的关系.
Volume:一个volume是一个目录,k8s volume构建在docker volumes之上,并且支持添加和配置volume目录或者其他存储设备.
Secret:secret存储了敏感数据,例如能允许容器接受请求的权限令牌.
Name:用户为k8s中资源定义的名字.
http://blog.csdn.net/shanyongxu/article/details/51620605
进一步补充:
Kubernetes优势:
- 容器编排
- 轻量级
- 开源
- 弹性伸缩
- 负载均衡
页:
[1]