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

网络优化软件深圳百度推广优化

网络优化软件,深圳百度推广优化,做网站公司在深圳,网站开发人员的考核在k8s中,服务日志除了标准输出,还有写入日志文件,若要对这些日志文件进行持久化存储,无论是通过网络文件存储还是hostpath,都会面临一个问题,多个pod会往同一个存储目录的同一个文件进行写入,导…

在k8s中,服务日志除了标准输出,还有写入日志文件,若要对这些日志文件进行持久化存储,无论是通过网络文件存储还是hostpath,都会面临一个问题,多个pod会往同一个存储目录的同一个文件进行写入,导致日志写入异常。

解决方法:在存储上先以pod hostname 建个目录,再往里写日志,使用sidercar pod 或者修改启动脚本的方式,但是都不太便捷和浪费资源。从kubernetes 1.15版本后默认启用一个功能VolumeSubpathEnvExpansion。使用 subPathExpr 字段从 Downward API 环境变量构造 subPath 目录名。  subpathexpr 这个参数,支持带拓展的环境变量. 

subpathexpr 用法说明

在这个示例中,Pod 基于 Downward API 中的 Pod 名称,使用 subPathExpr 在 hostPath 卷 /data 中创建目录 pod1。 主机目录 /data/pod1 挂载到了容器的 /logs 中。

apiVersion: v1
kind: Pod
metadata:name: pod1
spec:containers:- name: container1env:- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.nameimage: busyboxImagePullPolicy: IfNotPresentcommand: [ "sh", "-c", "while [ true ]; do echo 'Hello'; sleep 10; done | tee -a /logs/hello.txt" ]volumeMounts:- name: workdir1mountPath: /logssubPathExpr: $(POD_NAME) #POD_NAME 的值获取,使用到了downwardapi,通过这个特性可以获取到pod的 name,namespace, uid, podIP, nodeName 等; 以及cpu,mem的request 和limit, 这个在一些java应用中经常会用到。还可以把 label annotations 以文件的方式挂载到容器内。restartPolicy: Nevervolumes:- name: workdir1hostPath:path: /data

创建容器:

[root@k8s ~]# kubectl apply -f pod1.yaml
pod/pod1 created
[root@k8s ~]# ls /data/
pod1
[root@k8s ~]# ls /data/pod1/
hello.txt[root@k8s ~]# kubectl exec -it pod1 sh
/ # ls /logs/
hello.txt

deployment 示例

在目录里把namespace 加上,通过一个deployment 测试。

apiVersion: apps/v1
kind: Deployment
metadata:labels:run: subpathname: subpath
spec:replicas: 2selector:matchLabels:run: subpathtemplate:metadata:labels:run: subpathspec:containers:- name: container1env:- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.namespaceimage: busyboxcommand: [ "sh", "-c", "while [ true ]; do echo 'Hello'; sleep 10; done | tee -a /logs/hello.txt" ]volumeMounts:- name: workdir1mountPath: /logssubPathExpr: $(POD_NAMESPACE)/$(POD_NAME)volumes:- name: workdir1hostPath:path: /data

通过文件创建deployment

[root@k8s ~]# kubectl apply -f subpath-deploy.yaml
[root@k8s ~]# kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
subpath-79dd95caa-0adjs   1/1     Running   0          23m
subpath-79dd95caa-9adfa   1/1     Running   0          24m[root@k8s ~]# tree /data/
/data/
└── default├── subpath-79dd95caa-0adjs│   └── hello.txt└── subpath-79dd95caa-9adfa└── hello.txt3 directories, 2 files

可以看到存储目录 /data下,首先是namespace ,然后是pod name, 每个pod写入的文件都在各自目录,不会出现多个pod 写入同一文件的情况。
 

http://www.yayakq.cn/news/235887/

相关文章:

  • 网站维护 内容盐城市城乡建设局网站教育培训栏目
  • 网站开发与应用 论文深圳品牌网站设计公司
  • 自己怎么做免费网站阿里云虚拟主机wordpress建站教程
  • access建网站建站开始的前6个月多少外链最合适
  • 义乌哪里有学做网站的永州建设网站公司
  • 国外科技类网站微网站预约网站开发
  • 深圳网站建设哪家便宜网页版我的世界
  • wordpress做导航站做网站换域名
  • 大型购物网站排名我想弄个自己的卖货网站怎样做
  • 莆田人做的网站wordpress做论坛插件
  • 婺城区建设局网站网站内侧网编
  • 毕业生对于网站建设感受最近新闻
  • 群辉服务器建设的网站中国亚马逊官网
  • 做一套网站多钱陕西省建设监理协会网站证书
  • 网站轮播图片psd源码怎么做下载类的网站
  • 郑州加盟做网站图片上的字体导入wordpress
  • 网站 视觉冲击网页游戏排行榜前十名2021
  • 软件定制网站建设域名是什么 有什么用
  • 网站自助建设推广网站开发的项目
  • 总算把网站设计好了做视频网站程序多少钱
  • 石家庄企业建站哪家好小程序平台登录
  • jq网站模板东莞朝阳企讯通科技
  • ASP做网站源代码临沂建设局网站质量三监督
  • 网站打开的速度慢纺织网站模板
  • 建设网站需要购买叫人开发网站注意事项
  • 全民建站浏览器app下载安装
  • 服务器添加网站wordpress古文主题
  • 网站开发语言有几种joomla做类似赶集网的网站
  • 东晓南门户网站制作wordpress页面和文章
  • 企业网站建设方案服务建设企业网站的申请