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

大型网站建设兴田德润赞扬百度搜索引擎优化怎么做

大型网站建设兴田德润赞扬,百度搜索引擎优化怎么做,app购物网站建设,国家卫生健康委员会官网电子注册目录 1 为什么需要DaemonSet2 DaemonSet的Yaml的关键字段3 DaemonSet的使用4 一种自行控制Pod更新的方式5 总结 1 为什么需要DaemonSet Deployment可以用于部署无状态的应用,例如系统的接口层或者逻辑层,而多个Pod可以用于负载均衡和容灾。如果有这样一…

目录

      • 1 为什么需要DaemonSet
      • 2 DaemonSet的Yaml的关键字段
      • 3 DaemonSet的使用
      • 4 一种自行控制Pod更新的方式
      • 5 总结

1 为什么需要DaemonSet

Deployment可以用于部署无状态的应用,例如系统的接口层或者逻辑层,而多个Pod可以用于负载均衡和容灾。如果有这样一个需求,需要在集群的每个节点上都部署一个Pod,如果使用Deployment该怎么配置呢?如果每个节点都有一个Pod,副本数就跟集群的节点数相同,而集群的节点数量是可能变化的,那Deployment中怎么设置replicas字段呢?

为了解决这样的场景,k8s提供了DaemonSet:在每个节点上都部署一个Pod。

DaemonSet的使用场景通常有:

  • 日志采集:需要采集集群的每个节点的日志目录中的日志文件,并上报给服务端,例如,FileBeat、Logstash、Fluentd等组件都可以用于采集日志并上报
  • 指标监控:跟日志采集有点类似,只不过每个节点上的Pod不是读取日志文件,而是获取需要的指标数据,例如,使用Prometheus采集节点指标时,需要在每个节点部署程序供Prometheus获取指标数据
  • 用于网络或者存储的需要多个节点协作的服务:每个节点上的Pod可能需要使用iptables添加网络策略,行为跟kube-proxy有些类似

既然DaemonSet保证每个Node上都有一个Pod,当Node的数量变化时,Pod的数量也会随之变化,从而保证Pod的数量跟Node的数量一致。

2 DaemonSet的Yaml的关键字段

与Deployment相比,DaemonSet的spec部分主要有两个区别:

  • Deployment有spec.replicas副本数;而DaemonSet是没有的
  • Deployment的Pod的替换策略是spec.strategy,有两种策略:RollingUpdate(根据rollingUpdate中的配置滚动更新)和Recreate(所有Pod被干掉后重新创建Pod);DaemonSet的Pod的替换策略是spec.updateStrategy,有两种策略:RollingUpdate(跟Deployment一样进行滚动更新)和OnDelete(当某个节点上的Pod被干掉后才创建新的Pod)

其他的minReadySeconds、revisionHistoryLimit、selector、template等字段一模一样。

3 DaemonSet的使用

apiVersion: apps/v1
kind: DaemonSet
metadata:name: fluentd-elasticsearchnamespace: kube-systemlabels:k8s-app: fluentd-logging
spec:selector:matchLabels:name: fluentd-elasticsearchtemplate:metadata:labels:name: fluentd-elasticsearchspec:tolerations:- key: node-role.kubernetes.io/control-planeoperator: Existseffect: NoSchedule- key: node-role.kubernetes.io/masteroperator: Existseffect: NoSchedulecontainers:- name: fluentd-elasticsearchimage: quay.io/fluentd_elasticsearch/fluentd:v2.5.2resources:limits:memory: 200Mirequests:cpu: 100mmemory: 200MivolumeMounts:- name: varlogmountPath: /var/logterminationGracePeriodSeconds: 30volumes:- name: varloghostPath:path: /var/log

上面是k8s官方文档的一个示例:将主机上的/var/log目录挂载到容器的/var/log目录,在每个节点部署一个fluentd用于采集/var/log中的日志,这里还设置了Pod的资源限制和容忍,保证该Pod可以运行在包含master在内的所有节点,其中,spec.strategy字段没有设置,用的默认的滚动更新。

4 一种自行控制Pod更新的方式

跟Deployment类似,DaemonSet的更新通常也是更新镜像,如果一个集群有5000台机器,当使用kubectl set image更新某个DaemonSet资源时,默认的滚动更新策略会一步一步将所有节点的Pod进行更新,当需要回滚时,又需要对所有Pod进行回滚,机器比较多的情况下,升级和回滚的风险和耗时都是比较高的。

这里提供一种通过使用节点亲和性控制Pod升级频率的方式。

节点亲和性:只在包含某些标签的节点上部署Pod,例如,只在ssd类型的节点上部署Pod,可以给ssd类型的节点加上disk-type=ssd的标签,然后就可以通过节点亲和性让Pod只运行在这些节点上。

对于DaemonSet,也可以使用节点亲和性:

# pod.spec
affinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExperssions:- key: kubernetes.io/hostnameoperator: NotInvalues: []

默认情况下,Pod会运行在所有节点,如果需要控制让Pod只运行在某些节点,可以把其他节点加入此处的values数组中。

例如,如果集群有3个节点,分别是master、node1、node2,初始时可以将3个节点的名称放到数组中:

# pod.spec
affinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExperssions:- key: kubernetes.io/hostnameoperator: NotInvalues: ["master", "node1", "node2"]

此时,Pod不会运行在任何一个节点,当要让node1上的Pod运行时,可以将node1从values数组中删除:

# pod.spec
affinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExperssions:- key: kubernetes.io/hostnameoperator: NotInvalues: ["master", "node2"]

此时,Pod就会运行在node1上。

通过这种方式就可以控制DaemonSet的Pod安装和更新的频率,当然,修改values数组的操作肯定还是以来其他的程序完成的。

5 总结

Deployment和DaemonSet是日常部署过程中常用的两种部署方式,Deployment用于无状态应用的部署,DaemonSet用于全部节点的部署,所以,如果你的应用只是提供服务,不需要有稳定的存储,数据丢了也不要紧,那就选择Deployment,如果你的程序需要运行在每个节点上,常见的如agent应用(数据采集、日志上报),那就选择DaemonSet。

http://www.yidumall.com/news/38462.html

相关文章:

  • 聊天网站开发网络热词2023流行语及解释
  • 微信公众号运营助手seo优化前景
  • 山东省工程建设招标信息网站贵阳百度快照优化排名
  • 全屋定制十大品牌排行榜前十名百度seo建议
  • 做网络推广网站有哪些全网营销国际系统
  • 哪个网站做海外代购怎么做百度关键词排名
  • 株洲网上购房节seo问答
  • 自己做的网站慢是什么原因百度竞价推广课程
  • 驻马店企业做网站竞价代运营外包公司
  • 常州做网站找哪家好百度指数排名热搜榜
  • 有没有什么东西可以做网站2023年免费进入b站
  • 云南人seo优化包括哪些
  • 网站开发技术应用领域百度快照投诉
  • wordpress网站集群个人网站怎么做
  • 免费vip影视网站怎么做的福州seo代理商
  • 湖北住房和城乡建设厅网站电脑优化是什么意思
  • 厦门小羽佳网站建设开发企业查询信息平台
  • 计算机培训包就业简述seo对各类网站的作用
  • 网站建设需求调查google推广服务商
  • 在哪个网站可以自助建站百度智能云
  • 怎么做网站注册的网页百度搜索一下
  • 建设政府网站合同新的网络推广方式
  • 北京市昌平区社会建设网站免费自己建网页
  • 安徽省铜陵市建设局网站推广注册app赚钱平台
  • 综合性网站平台建设线上推广策划方案范文
  • 建筑类期刊排名网站改版seo建议
  • 网站开发及建设赔偿条款关键词查询工具包括哪些
  • 建设银行重庆分行网站比较好的网络推广平台
  • 100个经典产品设计seo实战培训学校
  • 网站视频链接怎么做的万词霸屏百度推广seo