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

送给做网站的锦旗语专业做网站哪里好

送给做网站的锦旗语,专业做网站哪里好,wordpress access denied.,好f123网站在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/347531/

相关文章:

  • 在线建站网站psd网页模板免费下载
  • ps怎么做网站首页图手机配件网站模板
  • 建设网站总经理讲话范本磁力蜘蛛搜索引擎
  • 用cms做个网站wordpress主题文章圆角化
  • 消防微型建设标准的网站是多少找工程包工平台
  • 做网站收广告费旅游网站模板大全
  • 成都快速建网站网站开发实训周报
  • 昆山建设招投标网站济南哪个网络公司建网站好
  • 网站后台编码加盟网站建设案例欣赏
  • 蓝色清爽网站wordpress会员中心添加头像上传
  • 网站建设必须在服务器微网站预约网站开发
  • 海城做网站公司怎么申请一个域名
  • 制作论文招聘网站的wordpress 3d翻书特效
  • 权重的网站厦门网红
  • 开州快速建网站郴州网签备案查询系统
  • 拖拽式建站平台查找网站建设历史记录
  • 企业网站建立流程wordpress讨论吧
  • 江西建设厅网站查询施工员苏州微网站建设公司哪家好
  • 昆山建设局网站表格下强的网站建设公
  • 网站设计和内容上的不足和建议网站建设与用户需求分析
  • 济南正规网站建设公司河北省住房和城乡建设部网站
  • 开发网站设计公司wordpress主题不分页
  • 哈尔滨制作企业网站徐州市建设工程交易中心
  • 专业微网站制作门户网站建设信息工作讲话
  • 上海建设网站的公司温州市网络问政平台
  • 珠海航展表演青岛seo排名收费
  • 开平市网站建设做调查的网站推荐
  • 网站购物商城功能模块图浦东网站建设哪家好
  • 金华哪里做网站网站搭建技术有哪些
  • 网站排名易下拉系统wordpress 企业 主题