当前位置: 首页 > news >正文

建网站的书籍百度官方

建网站的书籍,百度官方,复制网站文章注意事项,四川省法治政府建设网站kubernetes技术架构模型 一、kubernetes的Label标签 1.标签是以keyvalue的格式通过用户自定义指定,目的是将其加入到各种资源对象上来实现多维度的资源分组管理使其更方便的进行资源分配、调度、配置和部署管理工作。 2.标签可以结合Label Selector(标签选择器)查询…

kubernetes技术架构模型

一、kubernetes的Label标签

        1.标签是以key=value的格式通过用户自定义指定,目的是将其加入到各种资源对象上来实现多维度的资源分组管理使其更方便的进行资源分配、调度、配置和部署管理工作。

        2.标签可以结合Label Selector(标签选择器)查询和筛选拥有某些标签的资源对象。

           label 和 label selector两者结合使被管理的对象能更精细的分组管理实现集群的高可用。

        3.label selector 的使用场景:

                kube-controller进程通过资源对象RC上定义的label selector 来筛选要监控的Pod副本的数量,使Pod的数量始终符合预期设定的全自动控制流程。

                kube-proxy进程通过Service的label selector来选择对应的pod,自动建立每个Service到对应Pod的请求转发路由表

二、Replication Controller(RC)

             1. RC主要是定义了一个期望的场景声明某种pod的副本数量在任意时刻都符合预期值

             2.  RC包括:

                  pod期待的副本数

                  用于筛选目标pod的label selector

                  用于创建新pod的template模板

              3.RC中的replicas表示期望pod的副本数

                  rc中动态缩放命令: kubectl scale rc  pod名称 --replicas=x (x表示期望的pod副本数)

                  可以通过这个命令修改rc的副本数来实现pod的动态缩放功能

                  注:删除rc不会影响rc已经创建好的pod,可以通过上述操作命令设置replicas=0来删除已经存在的rc

                    RC的应用场景:在做应用的平滑升级时,设置rc中期待的副本数为x,表示系统中发始终运行10个pod,每次终止一个旧的版本就会自动生成一个新的版本。

三、Deployment

                  1.引入deployment的目的是更好的解决pod的编排问题,其内部使用的是replica set来实现前面所说的RC(它和RC的区别在于它支持集合的方式去声明label selector)。

                  2.deployment相对于RC的的亮点在于它可以随时知道pod的部署进度。

                  3.depolyment的使用场景:

  •           创建deployment对象来生成对对应的replica set完成pod副本的创建造
  •           通过deployment的状态来查看部署动作是否完成
  •           更新depolument来创建新的pod(版本升级),如果不稳定可以回滚到上一个版               本 
  •           可以挂起或者恢复

                  4.通过kubectl create -f xxx-deployment.yaml可以创建deployment

                      通过 kubectl get deployment 来查看已创建的deployment的信息

四、Horizontal Pod Autoscaler(HPA)

                 1.HPA的提出需求:因为google对于kubernetes的定位是自动化和智能化,即当前的分布式系统可以根据当前系统中不同主机的负载情况然后自动触发水平扩展或缩容行为,而目前的手动控制的方式明显不符合kubernetes的设计理念,所以HPA应运而生。

                 2.HPA的实现原理:通过追踪RC控制的所有pod的负载情况来确定是否要针对性的调整期望的pod数量。

                    依据pod的实现原理可以知道hpa的实现首先需要衡量pod的负载情况的指标

               第一种是 CPUUtilizationPercentage

                               

                        CPUUtil是一个算术平均值(目标POD所有副本自身CPU1分钟内利用率的平均值),如果超过了80%则意味当前的副本数目不足以支撑更多的请求需要进行动态扩容,当高峰期过去后pod的利用率降下来则pod的副本数自动减少到一个适当的值。

                        当前这个参数值需要通过Heapster扩展组件来获取这个值

               第二种是应用程序自定义的度量指标,如服务在每秒内的请求数

                        上图示例中该参考值超过90%会触发自动动态扩容行为

                 3.kubectl autoscale deployment xxx --cpu-percent=90 --min=1  --max=10,该命令可以创建上述图片的等价效果。

四、Service(微服务)

           

上图为service的工作位置

        1.kubernetes中多个pod组成的集群被客户端访问过程:客户端通过负载均衡器(kube-proxy)将service接收到的请求转发到后端的某个pod实例并在内部实现服务的负载均衡和会话保持机制。

         2.kubernetes的服务发现

            机制:kubernetes中的Service都有唯一的cluster IP 和唯一的名字,名字由自己定义(固定在配置中)

              通过Service的名字找到cluster ip (通过 add-on增值包引入dns系统,将服务名作为dns域名),直接使用服务名来建立通信连接。

          3.外部系统访问service的问题

                node ip : node节点的ip地址(集群中每个节点的物理网卡的ip地址,真实存在的物理网络)

                pod ip :pod的ip地址(docker engine 根据docker 0网桥的ip地址段进行分配)

                cluster ip:service 的ip 地址(虚拟ip,需要结合service port组成具体的通信端口,集群外的节点不能直接访问)

                 通过nodePort实现从外部访问集群内部:

              上述通过nodeport的方法是在kubernetes集群里每个node上为需要外部访问的service开启一个对应的tcp监听端口。

                可以通过设置一个负载均衡器对上述通信方式进行优化,主要是通过访问设置的负载均衡的ip地址来对访问的流量进行调度,实现集群内部的负载均衡。

五、Volume(存储卷)

              1.Volume是pod中可以被多个容器访问的共享目录,其生命周期和pod的生命周期相同但与容器的生命周期不相关,即容器终止或者重启时其卷中的数据不会丢失

上图示例是数据卷相关的配置文件写法

                 2.kubernetes的数据卷类型:empthDir(pod分配到Node是创建,初始内容为空,无需指定宿主机对应的文件目录,pod移除之后会被永久删除)、hostPath(pod挂载宿主机的文件或目录)、gcePersistentDisk(谷歌公有云提供的永久磁盘)、awsElasticBlockStore(亚马逊公有云提供的)、NFS(NFS网络文件系统提供共享存储目录)

六、Persistent Volume(某个网络存储中对应的一块存储):简称PV(有状态的对象)

        1.pv和volume的区别:

        pv只能是网络存储,不属于任何node,可以在每个node上访问

        pv不是定义在pod上,独立于pod之外定义

        2.pv的accesModes属性:
             readWriteOnce:读写权限,只能被单个node 挂载

             readOnlyMany:只读权限,允许多个node挂载

             readWriteMany:读写权限,允许多个node挂载

七、namespace(命名空间)

        1.namespace是将集群内部的资源对象分配到不同的namespace中,形成逻辑上分组的不同项目,使不同的分组在共享使用集群内部整个资源同时还可以被分别管理。

         2.集群启动后会创建一个default的namespace,可以通过kubectl get namespaces来查看命名空间的信息,如果用户不指明,则其创建的pod和rc、service将会被系统创建到default的namespace的命名空间下

                

http://www.zhongyajixie.com/news/29155.html

相关文章:

  • 新疆生产建设兵团招考网站网站seo案例
  • 电商类网站怎么做 seo友情链接交换源码
  • 清风网站建设品牌运营管理有限公司
  • 论坛上怎么做网站优化长沙网站推广工具
  • wordpress文章升序优化营商环境发言材料
  • 有了域名自己电脑怎么做网站游戏推广员是做什么的
  • 发布项目的平台安卓优化大师清理
  • 宁波市住房和城乡建设培训中心网站阿里云域名注册
  • 伊利集团网站建设怎么样呢国家提供的免费网课平台
  • 网站的平面设计图用ps做抚顺网站seo
  • 做网站放视频网站推广的方式和方法
  • 响应式布局网站模板seo网站优化知识
  • 提供小企业网站建设seo优化师就业前景
  • 请人做外贸网站应注意什么问题潮州网站建设
  • 做网站被骗属于诈骗吗跨境网站建站
  • 从网站优化之角度出发做网站策划百度资源共享链接分享组
  • 建设通网站怎么投诉宁波seo
  • 外贸网站优化公司北京seo运营
  • 沈阳建站模板系统包括网络推广收费价目表
  • 手机商城网站制作百度指数的搜索指数代表什么
  • 全套免费代码大全陕西新站seo
  • 内蒙古电子商务网站优化方案官方网站
  • 有什么网站可以做中间人的网上教育培训机构排名
  • mvc5 网站开发之学 pdf石家庄seo培训
  • 北京大学廉政建设研究中心网站男生短期培训就业
  • 17一起广州做网站seo关键词推广多少钱
  • 两学一做测试网站seo联盟
  • 定制建站网站简单的网页设计作品
  • 华大 建设网站seo在线工具
  • 做公司网站每年多少钱怎样在网上推广