欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
群晖和K8S+
- 学习K8S时经常用到网络存储,于是想找个稳定的NFS服务,正好家里的群晖DS218+长期开着,空间又充足,用来提供NFS服务挺合适,本文就是设置和使用的过程备忘;
- 下图是DS218+刚买来的样子,两块NAS硬盘,一直在稳定服务:
全文概览
- 设置NFS;
- NFS客户端安装NFS应用;
- K8S上的设置;
- 创建存储卷;
- 创建Tomcat
- 访问Tomcat服务
环境信息
- 群晖系统:DSM 6.2.2-24922 Update 4
- Kubernetes:1.15
- Kubernetes宿主机:CentOS Linux release 7.7.1908
- Helm:2.16.1
参考文章
本文重点是K8S实战,因此需要一定K8S基础,请参考:
如果您已经准备好了群晖、K8S、Helm,咱们就来实战吧。
设置NFS
- 网页登录群晖,<font color="blue">控制面板->共享文件夹</font>;
- 新增共享文件夹:
- 接下来是加密设置,这里为不设置加密,直接点击<font color="blue">下一步</font>:
- 高级设置页面,请按需设置,这里为了简单直接<font color="blue">下一步</font>:
- 点击应用即可创建文件夹,然后做NFS设置,如下图:
- 如下图,记下红框1中的NFS路径<font color="blue">/volume1/nfs-tomcat</font>(后面会用到),然后点击红框2:
- 除了NFS设置,还要给这个文件夹设置权限,<font color="red">否则远程写入的时候会报错</font>,如下图,打开File Station即可看到红框2中的<font color="blue">nfs-tomcat</font>,这就是NFS目录对应的本地磁盘目录,在上面点击鼠标右键,选择<font color="blue">属性</font>:
- 在弹出的属性页面,增加一个权限配置,请按照您的实际需要设置,这里为了省事儿设为任何人都能操作:
至此,群晖上的NFS设置完毕,接下来在K8S运行一个应用,使用这个NFS存储;
NFS客户端安装
NFS的使用者需要安装客户端,这里是K8S要用NFS,因此要在K8S宿主机上安装客户端应用,对CentOS来说就是执行命令:<font color="blue">yum install nfs-utils -y</font>
创建存储卷(PersistentVolume简称PV)
PV是K8S里常用的存储类型,这里创建一个NFS类型的PV:
- SSH登录K8S;
- 创建namespace:<font color="blue">kubectl create namespace tomcat-test</font>
- 新建名为<font color="blue">tomcat-test-pv.yaml</font>的文件,内容如下,注意<font color="blue">nfs.server</font>的值,是群晖的IP地址,nfs.path的值就是前面创建共享文件时记下来的<font color="blue">/volume1/nfs-tomcat</font>:
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
- 创建PV:<font color="blue">kubectl apply -f tomcat-test-pv.yaml</font>
- 查看PV,如下图,名为<font color="blue">pv-tomcat-test</font>的PV状态为<font color="red">Available</font>,表示空闲状态,可以被K8S使用:
- 现在PV创建成功,接下来通过Helm创建tomcat,来使用这个PV;
创建Tomcat
- 增加helm仓库(带有tomcat的仓库):<font color="blue">helm repo add bitnami https://charts.bitnami.com/bi...</font>
- 下载tomcat的chart:<font color="blue">helm fetch bitnami/tomcat</font>
- chart下载成功后,当前目录出现tomcat配置压缩包tomcat-6.2.4.tgz,解压:<font color="blue">tar -zxvf tomcat-6.2.4.tgz</font>
- 解压后出现tomcat文件夹,进去后打开文件<font color="blue">templates/pvc.yaml</font>,所有内容保持不变,仅在末尾添加下图红框中的内容:
- 上图红框中的内容很好理解:增加选择器,用上刚才创建的PV
- 回到tomcat文件夹下面,执行命令创建tomcat:<font color="blue">helm install --name-template tomcat001 -f values.yaml . --namespace tomcat-test</font>
- 查看PV状态,可见已经被使用(另一个PV仍旧是空闲状态,说明在<font color="blue">pvc.yaml</font>中设置的选择器是有效的):
- 继续查看pod和service,一切正常,同时发现tomcat的服务端口被映射到宿主机的30512端口:
- 浏览器访问<font color="blue">宿主机IP:30512</font>,可以正常打开tomcat欢迎页面:
- 回到群晖网页,打开File Station,可见nfs-tomcat目录下已经写入了很多内容,都是tomcat的内部文件:
至此,K8S成功的用上了群晖提供的NFS服务,在今后的K8S学习中,有了稳定的NFS服务,并且得益于群晖文件系统的安全性,数据安全性也有了提升;
欢迎关注公众号:程序员欣宸
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。