K8S使用群晖DS218+的NFS

简介: 在家学习K8S期间,想拥有一个稳定的网络存储,家里的群晖DS218+很适合这个角色

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

群晖和K8S+

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

    全文概览

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

    环境信息

  7. 群晖系统:DSM 6.2.2-24922 Update 4
  8. Kubernetes:1.15
  9. Kubernetes宿主机:CentOS Linux release 7.7.1908
  10. Helm:2.16.1

    参考文章

  • 本文重点是K8S实战,因此需要一定K8S基础,请参考:
  1. 《kubespray2.11安装kubernetes1.15》
  2. 《部署和体验Helm(2.16.1版本)》
  3. 《Ubuntu16环境安装和使用NFS》
  • 如果您已经准备好了群晖、K8S、Helm,咱们就来实战吧。

    设置NFS

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

    NFS客户端安装

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

    创建存储卷(PersistentVolume简称PV)

  • PV是K8S里常用的存储类型,这里创建一个NFS类型的PV:
  • SSH登录K8S;
  • 创建namespace:kubectl create namespace tomcat-test
  • 新建名为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
    
  • 创建PV:kubectl apply -f tomcat-test-pv.yaml

  • 查看PV,如下图,名为pv-tomcat-test的PV状态为Available,表示空闲状态,可以被K8S使用:
    在这里插入图片描述
  • 现在PV创建成功,接下来通过Helm创建tomcat,来使用这个PV;

    创建Tomcat

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

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
Unix Linux 文件存储
文件传输、文件挂载MOUNT:NFS、CIFS、ADB、SAMBA
文件传输、文件挂载MOUNT:NFS、CIFS、ADB、SAMBA
302 0
|
2月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
157 0
|
6月前
|
Ubuntu
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
205 2
|
Java Linux 网络安全
群晖DS218+部署Harbor(1.10.3)
家里的群晖用来装上GitLab,可以保存代码,也可以执行GitLab CI
383 1
群晖DS218+部署Harbor(1.10.3)
|
Linux 网络安全 开发工具
五个步骤理解smb和NFS
五个步骤理解smb和NFS
228 0
|
存储 安全 网络安全
ovirt将synology作为nfs存储域
ovirt将synology作为nfs存储域
274 0
ovirt将synology作为nfs存储域
|
存储 Linux 数据安全/隐私保护
【Storage】Openfiler存储服务器搭建ISCSI配置及ESXI连接
云小宝木有给我发优惠券,俺买不起服务器做实验啦!!!
1775 0
【Storage】Openfiler存储服务器搭建ISCSI配置及ESXI连接
|
开发工具
NFS搭建
NFS环境搭建
197 0
|
Linux 网络协议
Linux服务器---配置nfs
配置nfs     NFS服务的主要配置文件为 /etc/exports。/etc/exports文件内容格式:      <输出目录> 客户端(选项:访问权限,用户映射,其他)1、输出目录     输出目录是指NFS系统中所定义的共享给客户端使用的文件系统2、客户端     客户端是定义网络中可...
1761 0
|
Linux 网络安全 网络协议