11

K8S使用群晖DS218+的NFS

 3 years ago
source link: http://www.cnblogs.com/bolingcavalry/p/13908610.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

群晖和K8S+

  1. 学习K8S时经常用到网络存储,于是想找个稳定的NFS服务,正好家里的群晖DS218+长期开着,空间又充足,用来提供NFS服务挺合适,本文就是设置和使用的过程备忘;
  2. 下图是DS218+刚买来的样子,两块NAS硬盘,一直在稳定服务:
    3yuEveA.png!mobile

全文概览

  1. 设置NFS;
  2. NFS客户端安装NFS应用;
  3. K8S上的设置;
  4. 创建存储卷;
  5. 创建Tomcat
  6. 访问Tomcat服务

环境信息

  1. 群晖系统:DSM 6.2.2-24922 Update 4
  2. Kubernetes:1.15
  3. Kubernetes宿主机:CentOS Linux release 7.7.1908
  4. Helm:2.16.1

参考文章

本文重点是K8S实战,因此需要一定K8S基础,请参考:

  1. 《kubespray2.11安装kubernetes1.15》
  2. 《部署和体验Helm(2.16.1版本)》
  3. 《Ubuntu16环境安装和使用NFS》

如果您已经准备好了群晖、K8S、Helm,咱们就来实战吧。

设置NFS

  1. 网页登录群晖,控制面板->共享文件夹;
    QzIVRje.png!mobile
  2. 新增共享文件夹:
    ENZfQji.png!mobile
  3. 接下来是加密设置,这里为不设置加密,直接点击下一步:
    ArIvei3.png!mobile
  4. 高级设置页面,请按需设置,这里为了简单直接下一步:
    jANn6ra.png!mobile
  5. 点击应用即可创建文件夹,然后做NFS设置,如下图:
    z6RVBbE.png!mobile
  6. 如下图,记下红框1中的NFS路径/volume1/nfs-tomcat(后面会用到),然后点击红框2:
    naEbQbM.png!mobile
  7. 除了NFS设置,还要给这个文件夹设置权限,否则远程写入的时候会报错,如下图,打开File Station即可看到红框2中的nfs-tomcat,这就是NFS目录对应的本地磁盘目录,在上面点击鼠标右键,选择属性:
    zUba63V.png!mobile
  8. 在弹出的属性页面,增加一个权限配置,请按照您的实际需要设置,这里为了省事儿设为任何人都能操作:
    umaQFvb.png!mobile 至此,群晖上的NFS设置完毕,接下来在K8S运行一个应用,使用这个NFS存储;

NFS客户端安装

NFS的使用者需要安装客户端,这里是K8S要用NFS,因此要在K8S宿主机上安装客户端应用,对CentOS来说就是执行命令:yum install nfs-utils -y

创建存储卷(PersistentVolume简称PV)

PV是K8S里常用的存储类型,这里创建一个NFS类型的PV:

  1. SSH登录K8S;
  2. 创建namespace:kubectl create namespace tomcat-test
  3. 新建名为tomcat-test-pv.yaml的文件,内容如下,注意nfs.server的值,是群晖的IP地址,nfs.path的值就是前面创建共享文件时记下来的/volume1/nfs-tomcat:
apiVersion: v1
kind: PersistentVolume
metadata:
 name: pv-tomcat-test
 namespace: tomcat-test
 labels:
   pv: pv-tomcat-test
spec:
 capacity:
   storage: 10Gi
 accessModes:
   - ReadWriteOnce
 persistentVolumeReclaimPolicy: Recycle
 nfs:
   path: /volume1/nfs-tomcat
   server: 192.168.50.42
  1. 创建PV:kubectl apply -f tomcat-test-pv.yaml
  2. 查看PV,如下图,名为pv-tomcat-test的PV状态为Available,表示空闲状态,可以被K8S使用:
    INv2Uz.png!mobile
  3. 现在PV创建成功,接下来通过Helm创建tomcat,来使用这个PV;

创建Tomcat

  1. 增加helm仓库(带有tomcat的仓库): helm repo add bitnami https://charts.bitnami.com/bitnami
  2. 下载tomcat的chart:helm fetch bitnami/tomcat
  3. chart下载成功后,当前目录出现tomcat配置压缩包tomcat-6.2.4.tgz,解压:tar -zxvf tomcat-6.2.4.tgz
  4. 解压后出现tomcat文件夹,进去后打开文件templates/pvc.yaml,所有内容保持不变,仅在末尾添加下图红框中的内容:
    FjuuYr3.png!mobile
  5. 上图红框中的内容很好理解:增加选择器,用上刚才创建的PV
  6. 回到tomcat文件夹下面,执行命令创建tomcat:helm install --name-template tomcat001 -f values.yaml . --namespace tomcat-test
  7. 查看PV状态,可见已经被使用(另一个PV仍旧是空闲状态,说明在pvc.yaml中设置的选择器是有效的):
    VNrAZfM.png!mobile
  8. 继续查看pod和service,一切正常,同时发现tomcat的服务端口被映射到宿主机的30512端口:
    JZVBbuq.png!mobile
  9. 浏览器访问宿主机IP:30512,可以正常打开tomcat欢迎页面:
    ieeURfy.png!mobile
  10. 回到群晖网页,打开File Station,可见nfs-tomcat目录下已经写入了很多内容,都是tomcat的内部文件:
    mQBN7vq.png!mobile 至此,K8S成功的用上了群晖提供的NFS服务,在今后的K8S学习中,有了稳定的NFS服务,并且得益于群晖文件系统的安全性,数据安全性也有了提升;

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...

https://github.com/zq2599/blog_demos

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK