array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 k8s介绍和基础概念 - 爱码网

一、Kubernetes 介绍

1、Kubernetes 概述

基于 Docker 构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。 基于容器的云平台。
官网:https://kubernetes.io/
优点:

  1. 轻量级:消耗资源小
  2. 开源
  3. 弹性伸缩
  4. 负载均衡:IPVS

2、Kubernetes 组件介绍

k8s介绍和基础概念

3、Kubernetes 常见组件介绍

  1. master:管理结点
  2. apiserver:提供接口服务,用户通过 apiserver 来管理整个容器集群平台。API Server 负责和 etcd交互,整个集群的所有的交互都是以API Server为核心的。API Server提供的验证和 授权保证了整个集群的安全
  3. scheduler kubernetes:调度服务
  4. Replication Controllers:复制,保证 pod 的高可用
  5. minion : 真正运行容器的物理机,kubernets 中需要很多minion机器,来提供运算。
  6. container:容器,可以运行服务和程序
  7. Pod:调度的最小颗粒,是单纯的容器,Pod 是一个可以被创建、销毁、调度、管理的最小的部署 单元。pod中可以包括一个或一组容器。
  8. Kube_proxy:代理做端口转发,相当于 LVS-NAT 模式中的负载调度器器,Proxy解决了同一宿主机,相同服务端口冲突的问题,还提供了对外服务,Proxy后端使用了随机、轮循负载均衡算法。
  9. Etcd:存储配置信息,可以理解为是k8s的数据库,存储着k8s容器 云平台中所有节点、pods、网络等信息。
  10. Services:最外围的单元,通过虚拟一个访问 IP 及服务端口,可以访问我们定义好的Pod资源
  11. Labels标签:是用于区分 Pod、Service、Replication Controller的key/value键值对,仅使用在 Pod、Service、Replication Controller之间的关系识别,但对这些单元本身迚 行操作时得使用 name标签。
  12. Deployment:用于更新 Pod 和 Replica
    Set的方法,你可以在对象中只描述你所期望的运行状态,控制器会将现在的实际状态转换成期望的状态。可以用来创建新的资源。可以实现无人值守的上线

各组件之间的关系

  1. Kubernetes的架构由一个master和多个minion组成:
  2. master通过 api 提供服务,接受kubectl 的请求来调度管理整个集群。
  3. kubectl:是 k8s 平台的一个管理命令。
  4. Replication controller 定义了多个 pod 或者容器需要运行,如果当前集群中运行的 pod 或容器 达到配置的数量,replication controller 会调度容器在多个 minion 上运行,保证集群中的pod数量。
  5. service则定义真实对外提供的服务,一个 service 会对应后端运行的多个 container。
  6. Kubernetes是个管理平台,minion 上的 kube-proxy 拥有提供真实服务公网 IP。客户端访问 kubernetes 中提供的服务,是直接访问到 kube-proxy 上的。
  7. Kubernetes 中 pod 是一个基本单元,一个 pod 可以是提供相同功能的多个 container,这 些容器会被部署在同一个 minion 上。minion 是运行 Kubelet 中容器的物理机。minion 接 受
    master的指令创建 pod 或者容器。

k8s介绍和基础概念
Master:

  1. Kubectl:通过命令在master管理node的工具
  2. kube-apiserver:相当于对外窗口,所有node节点都是通过apiserver通讯
  3. kube-controller-manager:负责pod管理
  4. kube-scheduler:controller-manager依据scheduler进行管理pod,调度器
  5. Etcd:存储设备(也可以独立部署)

Node:

  1. Kubelet:负责把本机node的情况汇报给master进行存储、从master节点获取信息然后下发命令
  2. kube-proxy:网络的转发
  3. Docker:跑容器的

二、基础概念

1、Pod概念

  1. 自主式pod
    由命令启动的pod
  2. 管理器管理的pod
    由yaml或者json文件启动的pod

2、网络通讯模式

K8s的网络模型假定了所有的pod都在一个可以连通的扁平网络中,这在GCE里面是现成的网络模型,k8s假定这个网络已经存在。而在私有云里搭建k8s集群就不能假定这个网络已经存在了。我们需要自己实现这个网络假设,将不同节点上的docker容器之间的互相访问打通,然后运行k8s。

  1. 同一个pod内的多个容器之间的通讯(lo)
    同一个pod共享同一个网络命名空间,共享一个linux协议栈
  2. 各个pod之间的通讯(overlay network)
    Flannel是coreos针对k8s设计的一个网络规划服务,它的功能是让集群中的各个 节点主机创建的docker容器具有全集群唯一的虚拟ip地址。而且还能在这些ip地址之间创建一个覆盖网络(overlay network),通过这个覆盖网络,将数据包原封 装不动的传递到目标容器。
    k8s介绍和基础概念
    Etcd:
    存储管理flanel可分配的ip地址段资源,监控etcd中每个pod的实际地址,并在内存中建立维护pod节点路由表。
  3. Pod与service之间的通讯(各节点的ipvs规则)
    k8s介绍和基础概念

下篇讲新版k8s二进制集群部署想提起了解的可以加我vx: CXKLittleBrother

给大家分享个k8s学习教程:
https://pan.baidu.com/s/1NalE9cXSMya4yM_5n7OIGw
提取码:1688

相关文章: