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

wordpress如何修改主题cssseo整站优化服务

wordpress如何修改主题css,seo整站优化服务,新开传奇网站手游,怎么做盗版视频网站介绍 DaemonSet就是让一个节点上只能运行一个Daemonset Pod应用,每个节点就只有一个。比如最常用的网络组件,存储插件,日志插件,监控插件就是这种类型的pod.如果集群中有新的节点加入,DaemonSet也会在新的节点创建出来…

介绍

  DaemonSet就是让一个节点上只能运行一个Daemonset Pod应用,每个节点就只有一个。比如最常用的网络组件,存储插件,日志插件,监控插件就是这种类型的pod.如果集群中有新的节点加入,DaemonSet也会在新的节点创建出来。
  DaemonSet如何保证每个节点,只有一个Pod副本运行呢?DaemonSet首先从Etcd获取所有Node的列表,然后它会去检查所有的Node,如果这个节点上没有所要运行的DaemonSet,就会启动一个出来。如果这个节点有1个以上的DaemonSet,那就会删除那个多余的DaemonSet。如果刚好只有一个运行,那这个节点就是正常的运行的。

DaemonSet例子


  现在我们通过一个日志收集的例子来学习DaemonSet.根据上一篇的介绍,我们继续把那个nginx稍微修改一下,让它的日志目录映射出来。可以看出来和上一章的没太大区别,只是我们把nginx的日志目录映射到了宿主机的/tmp/log 目录。
apiVersion: v1
kind: Service
metadata:name: nginxlabels:app: nginx
spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: web
spec:serviceName: "nginx"replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.22.1ports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/html- name: varlogmountPath: /var/log/nginxvolumes:- name: varloghostPath:path: /tmp/log        volumeClaimTemplates:- metadata:name: wwwspec:storageClassName: rook-ceph-blockaccessModes:- ReadWriteOnceresources:requests:storage: 1Gi

这样我们在宿主机的/tmp/log 目录,看到nginx产生的日志。
在这里插入图片描述
现在我们生成一个日志收集的DaemonSet。收集的日志保存在redis中。先看yaml文件。所有涉及的容器镜像可以在这里下载 提取码: 6bqe

1.ConfigMap

由于我们用的FileBeat的来采集日志,这个名为filebeat-config的ConfigMap会在/etc/filebeat/目录生成一个filebeat.yml的配置文件,这个配置文件就是filebeat的配置文件。这个配置文件指定会在/var/log/nginx/目录下的所有log文件的内容,会推送到Redis中。

2.Redis

这里配置的Redis配置的是一个StatefulSet pod,并且还给它配置了一个headless service用户固定它的网络标识。

3. FileBeat DaemonSet

最下面的Yaml配置就是filebeat的配置,它会把上面nginx映射出来的宿主日志目录/tmp/log作为Volume又挂接到DaemonSet的 /var/log/nginx/目录,同时它也把Redis的网络标识redis-0.rediservice.default.svc.cluster.local放入配置中。这样整个DaemonSet就能把日志推送到redis中。

apiVersion: v1
kind: ConfigMap
metadata:name: filebeat-confignamespace: default
data:filebeat.yml: |-filebeat.registry_file: /var/log/containers/filebeat_registryfilebeat.idle_timeout: 5sfilebeat.spool_size: 2048logging.level: infofilebeat.prospectors:- input_type: logpaths:- "/var/log/nginx/*.log"symlinks: truejson.message_key: logjson.keys_under_root: truejson.add_error_key: truemultiline.pattern: '^\s'multiline.match: afterdocument_type: kube-logstail_files: truefields_under_root: trueoutput.redis:hosts: ${REDIS_HOST:?No Redis host configured. Use env var REDIS_HOST to set host.}key: "filebeat"
---
apiVersion: v1
kind: Service
metadata:name: rediservicelabels:app: redis
spec:ports:- port: 6379name: redisclusterIP: Noneselector:app: redis
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: redisnamespace: default
spec:serviceName: "rediservice"replicas: 1selector:matchLabels:app: redisrole: logstortemplate:metadata:labels:app: redisrole: logstorspec:containers:- name: redisimage: redis:4.0-alpineports:- name: rediscontainerPort: 6379
---
apiVersion: apps/v1
kind: DaemonSet
metadata:name: filebeat-dsnamespace: default
spec:selector:matchLabels:app: filebeatrelease: stabletemplate:metadata:labels: app: filebeatrelease: stablespec:containers:- name: filebeatimage: ikubernetes/filebeat:5.6.5-alpinevolumeMounts:- name: filebeat-configmountPath: /etc/filebeat- name: nginx-logsmountPath: /var/log/nginx/env:- name: REDIS_HOSTvalue: redis-0.rediservice.default.svc.cluster.local- name: REDIS_LOG_LEVELvalue: debug     volumes:- name: filebeat-configconfigMap:name: filebeat-config- name: nginx-logshostPath:path: /tmp/log

把上面的yaml通过kubectl apply -f 的形式运行到K8s.运行完成后,会生成下面的pod。可以看到每个node节点只有一个filebeat运行。
在这里插入图片描述
接下来我们通过,curl命令生成一些nginx日志。我们直接对web-1的nginx产生日志。

for i in {1..4096} ; do curl 10.244.2.24 ; done

执行完成后,我们进入redis,看日志是否有生成。

kubectl exec -it redis-0 /usr/local/bin/redis-cli

进入redis我们通过keys *的命令看到产生了一个filebeat的键值,里面保存的就是日志,但是里面的日志是list类型的。我们通过lrange filebeat 1 2可以查看到刚才产生的日志信息。
在这里插入图片描述

在这里插入图片描述
其实DaemonSet和Deployment一样都是可以版本管理的。通过下面的命令我们可以看到filebeat-ds的历史版本,现在的版本只有1个。

kubectl rollout history daemonset filebeat-ds

在这里插入图片描述
现在我们把filebeat的版本升级一下,升级到filebeat:5.6.6-alpine。filebeatupdateimage.yaml 升级的yaml文件如下

apiVersion: apps/v1
kind: DaemonSet
metadata:name: filebeat-dsnamespace: default
spec:selector:matchLabels:app: filebeatrelease: stabletemplate:metadata:labels: app: filebeatrelease: stablespec:containers:- name: filebeatimage: ikubernetes/filebeat:5.6.6-alpinevolumeMounts:- name: filebeat-configmountPath: /etc/filebeat- name: nginx-logsmountPath: /var/log/nginx/env:- name: REDIS_HOSTvalue: redis-0.rediservice.default.svc.cluster.local- name: REDIS_LOG_LEVELvalue: debug     volumes:- name: filebeat-configconfigMap:name: filebeat-config- name: nginx-logshostPath:path: /tmp/log

升级版本,可以看到filebeat的pod id都发生了变化。并且历史版本多出一个版本。

kubectl apply -f filebeatupdateimage.yaml 

在这里插入图片描述
在这里插入图片描述
如果我们要回到1号版本,我们可以运行如下命令,同时看到pod又重新新建了。

kubectl rollout undo daemonset filebeat-ds --to-revision=1

在这里插入图片描述
那这些版本是如何被维护以及记录的呢?是通过一个叫ControllerRevision API对象,我们可以通过这个查看版本是怎么保存的。通过下面的命令我们可以看到filebeat-ds有一个2,3的版本,原来的1没看见了,那是因为我们回滚到了1版本。但是回滚到的1版本是现在的新版本3,所以才会有2,3.
在这里插入图片描述

http://www.mmbaike.com/news/54033.html

相关文章:

  • ftp 网站文件净水器十大品牌
  • 什么系统网站好今日百度关键词排名
  • 想把书放到二手网站如何做网络推广违法吗
  • 免费app做logo的网站网页推广链接怎么做
  • 泰州做网站需要多少钱电商营销
  • 陕西商城网站建设西安网站seo技术
  • wordpress贴吧主题seo资料
  • 宿迁北京网站建设怎么建网站
  • 杭州seo网站优化目前最好的引流推广方法
  • 青岛做网站建设价格低西安网
  • 推荐昆明做网站建设万能导航网
  • 公司搭建网站服务外贸订单一般在哪个平台接?
  • 三合一网站源码免费广告推广平台
  • 网站建站的具体流程兰州seo推广
  • 免费建设个人手机网站学生个人网页制作教程
  • 为什么菜市场不可以做网站青岛百度关键词优化
  • 做app的网站有哪些功能吗杭州seo的优化
  • 广告发布需要许可证吗宝鸡百度seo
  • 网站seo标题是什么意思黑帽seo技术
  • 网站建设公司怎么赚钱网络营销策划总结
  • 合肥做网站mdyun新闻投稿平台有哪些
  • 世界知名网站新的营销方式有哪些
  • 网站 建设 汇报西安网站设计开发
  • 手机网站建设网拓客渠道有哪些
  • 闵行网站制作公司太原seo报价
  • app软件下载免费优就业seo
  • 做网站分什么软件免费可用的网站源码
  • 太原手机模板建站现在搜什么关键词能搜到网站
  • 汕头网站建设设计天津优化公司
  • 福建做网站公司南昌seo