设为首页 收藏本站
查看: 866|回复: 0

[经验分享] Kubernetes PV/PVC使用实践

[复制链接]

尚未签到

发表于 2018-1-4 19:59:51 | 显示全部楼层 |阅读模式
  pv,pvc的概念不解释了,之前在registry中已经使用过PV和PVC,现在想把WebLogic Server中的日志给放到外部的存储中来,过程如下:
  首先在需要放日志的目标节点上建立一个文件夹,比如/k8s/weblogic
  在/etc/exports中加入一个nfs的mount点
  

[iyunv@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
  

[iyunv@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
  

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

  通过get pv查看是否关联上
  

[iyunv@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的配置。
  

[iyunv@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最适合什么场景,还需要继续探讨。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431659-1-1.html 上篇帖子: (3) kubernetes pod调度 下篇帖子: Docker系列(九)Kubernetes安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表