Kubernetes PV/PVC使用实践
转载于https://www.cnblogs.com/ericnie/p/7733281.html
pv,pvc的概念不解释了,之前在registry中已经使用过PV和PVC,现在想把WebLogic Server中的日志给放到外部的存储中来,过程如下:
首先在需要放日志的目标节点上建立一个文件夹,比如/k8s/weblogic
在/etc/exports中加入一个nfs的mount点
[root@k8s-node-1 weblogic]# cat /etc/exports
/k8s/test *(insecure,rw,async,no_root_squash)
/k8s/weblogic *(insecure,rw,async,no_root_squash)
重新启动nfs
service nfs restart
nfs是否成功,可以通过下面命令来进行验证。
mount -t nfs -o rw 192.168.0.103:/k8s/weblogic /mnt/nfs
建立一个pv

[root@k8s-master pv]# cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0003
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /k8s/weblogic
server: 192.168.0.103

再建立一个pvc

[root@k8s-master pv]# cat pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: weblogiclogs
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi

通过get pv查看是否关联上

[root@k8s-master pv]# kubectl get pv
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGE
pv0003 5Gi RWO Recycle Bound default/weblogiclogs 41m
pv01 20Gi RWX Recycle Bound default/myclaim2 36d

这里遇到一个问题,开始建立的pv死活claim为空,查看pv以及pvc的配置发现并没有任何名称上的关联,继续研究,发现纯粹是通过storage大小进行匹配的,之前因为照抄书本,一个是5G,一个是8G所以就无法匹配了,修改后成功。
最后是weblogic的rc的配置。

[root@k8s-master pv]# cat rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: helloworld-service
spec:
replicas: 1
template:
metadata:
labels:
weblogic-app: "helloworld"
version: "0.1"
spec:
containers:
- name: weblogichelloworld
image: 1213-helloworld:v1
volumeMounts:
- mountPath: "/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/logs"
name: mypd
ports:
- containerPort: 7001
volumes:
- name: mypd
persistentVolumeClaim:
claimName: weblogiclogs
---
apiVersion: v1
kind: Service
metadata:
name: helloworldsvc
labels:
weblogic-app: helloworld
spec:
type: NodePort
ports:
- port: 7001
protocol: TCP
targetPort: 7001
name: http
nodePort: 30005
selector:
weblogic-app: helloworld

这里又遇到一个问题,之前想法是把Servers/AdminServer下面所有的都放在pv中,后来发现pod死活不启动。修改成最后log的路径后,启动成功。
随后我们也在pv中看到满屏的日志了。


==========================================================================
值得探讨的是,这种PV/PVC模式并不是存放WebLogic日志的好的方式,因为如果RC扩展为多个WebLogic Pod,意味着多个AdminServer都需要去访问和读写同一个目录和同一个文件,因为他们都是AdminServer,所以必然造成文件的损坏,所以以上只是做一个验证,日志的收集还是通过官方推荐的EFK方式比较合适,一方面能够记录应用日志,另一方面也可以记录Pod name, 但PV/PVC最适合什么场景,还需要继续探讨。
Kubernetes PV/PVC使用实践的更多相关文章
- Kubernetes Pv & Pvc
Kubernetes PV & pvc 介绍 PersistentVolume(pv)和PersistentVolumeClaim(pvc)是k8s提供的两种API资源,用于抽象存储细节.管理 ...
- [Kubernetes]PV,PVC,StorageClass之间的关系详解
在Kubernetes中,容器化一个应用比较麻烦的地方莫过于对其"状态"的管理,而最常见的"状态",莫过于存储状态. 在[Kubernetes]深入理解Stat ...
- Kubernetes 学习13 kubernetes pv pvc configmap 和secret
一.概述 1.我们在pvc申请的时候未必就有现成的pv能正好符合这个pvc在申请中指定的条件,毕竟上一次的成功是我们有意设定了有一些满足有一些不满足的前提下我们成功创建了一个pvc并且被pod绑定所使 ...
- Kubernetes 存储卷管理 PV&PVC(十)
目录 一.emptyDir 二.hostPath 三.PV & PVC 1.NFS PersistentVolume 2.创建 PVC 3.创建 Pod 进行挂载 为了持久化保存容器的数据,可 ...
- kubernetes Value:将磁盘挂载到容器,PV,PVC
6.1.介绍卷 6.1.1.卷的类型 emptyDir-用于存储临时数据的简单空目录 hostPath-用于将目录从工作节点的文件系统挂载到pod nfs-挂载到pod中的NFS共享卷. 还有其他的如 ...
- Kubernetes PV与PVC的关系
Kubernetes PV与PVC的关系 PersistenVolume(PV):对存储资源创建和使用的抽象,使得存储作为集群中的资源管理,分为有静态与动态.PersistentVolumeClaim ...
- Serverless Kubernetes全面升级2.0架构:支持多命名空间、RBAC、CRD、PV/PVC等功能
Serverless Kubernetes概述: 阿里云Serverless Kubernetes容器服务最新开放香港.新加坡.悉尼区域,同时全面开放2.0架构,帮助用户更加便捷.轻松地步入“以应用为 ...
- Kubernetes 存储系统 Storage 介绍:PV,PVC,SC
要求:先了解数据docker容器中数据卷的挂载等知识 参考网址: https://www.cnblogs.com/sanduzxcvbnm/p/13176938.html https://www.cn ...
- k8s存储 pv pvc ,storageclass
1. pv pvc 现在测试 glusterfs nfs 可读可写, 多个pod绑定到同一个pvc上,可读可写. 2. storageclass 分成两种 (1) 建立pvc, 相当于多个 ...
随机推荐
- [linux] ssh远程执行本地脚本
1.ssh密钥登录 略 2.免确认机器指纹,ssh -o StrictHostKeyChecking=no [root@XM-v125 ~]# ssh wykai@192.168.0.110 The ...
- Arithmatic项目修改总结
Arithmatic项目修改总结 github仓库 arithmatic3.0 一. 修改介绍 修改后类图: 1.关于类的合并 ==可以发现相比右边(旧)的类,左边(新)的类少了很多,这是我这次大改的 ...
- 记事本App之NABCD
在经过了漫长的讨论之后,在经历了无数次提议.否定.再提议.改进之后.我们团队的团队项目终于有了结果,小组成员一致同意做一个移动端记事本的app.下面我就来详细的阐明我们项目的NABCD这5大项内容. ...
- Daily Scrum (2015/11/6)
今晚除了玉钟焕的其他成员在一起开了个短会.讨论有关添加新功能以及一些BUG问题.由于时间原因,我们本想把动态爬取功能留到第二个迭代中,但是现在目前时间还够,我们便一起对这一功能的讨论和实现进行分析. ...
- 20162328蔡文琛 大二 十二周课上测试 hash
- 《Spring1之第四次站立会议》
<第四次站立会议> 昨天:我把小组成员找到的写关于登录界面的代码加到了我的项目工程里,并对它有了一定的了解,已经能够编译运行了,得到了登陆的界面: 今天:试着做了一下主框架里的在线人数的显 ...
- C# winForm调用WebService
C#winForm调用WebService的远程接口 创建一个WebService工程用例 添加服务引用 添加webService服务地址 输入命名空间名称 主要代码 测试成功截图 工程代码下载 新建 ...
- 文件上传到tomcat服务器 commons-fileupload的详细介绍与使用
三个类:DiskFileUpload.FileItem和FileUploadException.这三个类全部位于org.apache.commons.fileupload包中. 首先需要说明一下for ...
- Android-TCP编程
以下是PC端代码: package com.example.sxb.myapplication;import java.io.BufferedReader;import java.io.IOExcep ...
- 深入理解Java虚拟机&运行时数据区
其中,程序计数器.虚拟机栈.本地方法栈3个区域随线程而生,随线程而灭.