欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

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

群晖和K8S+

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

全文概览

  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. 网页登录群晖,控制面板->共享文件夹;

  2. 新增共享文件夹:

  3. 接下来是加密设置,这里为不设置加密,直接点击下一步:

  4. 高级设置页面,请按需设置,这里为了简单直接下一步:

  5. 点击应用即可创建文件夹,然后做NFS设置,如下图:

  6. 如下图,记下红框1中的NFS路径/volume1/nfs-tomcat(后面会用到),然后点击红框2:

  7. 除了NFS设置,还要给这个文件夹设置权限,否则远程写入的时候会报错,如下图,打开File Station即可看到红框2中的nfs-tomcat,这就是NFS目录对应的本地磁盘目录,在上面点击鼠标右键,选择属性:

  8. 在弹出的属性页面,增加一个权限配置,请按照您的实际需要设置,这里为了省事儿设为任何人都能操作:



    至此,群晖上的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使用:

  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,所有内容保持不变,仅在末尾添加下图红框中的内容:

  5. 上图红框中的内容很好理解:增加选择器,用上刚才创建的PV
  6. 回到tomcat文件夹下面,执行命令创建tomcat:helm install --name-template tomcat001 -f values.yaml . --namespace tomcat-test
  7. 查看PV状态,可见已经被使用(另一个PV仍旧是空闲状态,说明在pvc.yaml中设置的选择器是有效的):

  8. 继续查看pod和service,一切正常,同时发现tomcat的服务端口被映射到宿主机的30512端口:

  9. 浏览器访问宿主机IP:30512,可以正常打开tomcat欢迎页面:

  10. 回到群晖网页,打开File Station,可见nfs-tomcat目录下已经写入了很多内容,都是tomcat的内部文件:



    至此,K8S成功的用上了群晖提供的NFS服务,在今后的K8S学习中,有了稳定的NFS服务,并且得益于群晖文件系统的安全性,数据安全性也有了提升;

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

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

https://github.com/zq2599/blog_demos

K8S使用群晖DS218+的NFS的更多相关文章

  1. 群晖DS218+部署Harbor(1.10.3)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. 群晖DS218+部署GitLab

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. 群晖DS218+做maven私服(nexus3)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 群晖DS218+部署mysql

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. 群晖DS218+部署kafka

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 两台群晖之间传输数据NFS

    如何在两台局域网的群晖之间传输数据,可以用NFS的方式来实现.摘抄如下,地址http://www.nasyun.com/thread-64638-1-1.html?reload=true 假设要把群晖 ...

  7. 群晖 创建nfs 共享文件夹 k8s 使用

    1) 打开控制面板 2) 打开共享文件夹 3) 新增共享文件夹 4) 基本信息配置 2) 3) 4) 5) 点完确定,应该会退出,继续选中刚才创建的,点编辑 2) 3) 5)返回主页面,点击file ...

  8. 什么是NAS.什么是黑白群晖?(转)

    前言               为了让更多的新人可以简单了解什么是nas,什么是黑群晖.什么是白群晖!有什么作用?特此制作以下教学!(原文为MOMO所写).图片也大体从互联网上下载.有对原作者不便之 ...

  9. [k8s]jenkins配合kubernetes插件实现k8s集群构建的持续集成

    另一个结合harbor自动构建镜像的思路: 即code+baseimage一体的方案 - 程序员将代码提交到代码仓库gitlab - 钩子触发jenkins master启动一次构建 - jenkin ...

随机推荐

  1. Win10安装Ubuntu子系统

    相信我,这是最后一次折腾系统了qaq,以后一定开始认真用Linux编程 跟的一个博客安装,传送门:Win10安装Ubuntu子系统及图形化界面详细教程 文章是2019的,加上我装的是Ubuntu 20 ...

  2. sql 注入初探

    Sql注入:就是将恶意的sql语句插入到用户输入的参数当中并带入数据库中查询并在浏览器返回不该显示的信息 寻找sql注入点: 1.要有参数值的传递(url当中GET型的.注册用户名的页面.登录框.留言 ...

  3. spring ioc 源码分析之-- beanDefinition的加载过程以及ComponentScan,@componet,@import @Bean等注解解析过程

    背景:我们启动主启动类后,相应的bean就被扫描进来了,原理是啥? 实现该功能的主要核心类就是:ConfigurationClassPostProcessor,我们看看他的继承体系: 它实现了Bean ...

  4. USB虚拟串口 使用基于stm32的RT-Thread

    参考我的RT Thread论坛文章 https://www.rt-thread.org/qa/thread-422644-1-1.html

  5. matlab中subplot 在平铺位置创建坐标区

    来源:https://ww2.mathworks.cn/help/matlab/ref/subplot.html?searchHighlight=subplot&s_tid=doc_srcht ...

  6. Jmeter JDBC Request 使用详解

    本篇博文讲解以MySQL为例,搞懂JDBC Request中MySQL的使用方法,换成其它数据库, 如Oracle.PSQL也会很容易上手. 一.基本配置 1.首先我们先了解一下,不同数据库的驱动类和 ...

  7. 15.深入k8s:Event事件处理及其源码分析

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 概述 k8s的Event事件是一种资源对象,用于展示集群内发生的情况 ...

  8. BUUCTF-[极客大挑战 2019]BabySQL 1 详解

    打开靶机 应该是love sql惹的事吧,来了个加强版本的sql注入,不过我们先输入账号密码看有什么反应 整一手万能密码,闭合双引号?username=admin&password=admin ...

  9. Tomcat配置Gizp 客户端使用okHttp3

    找到tomcat 在 server.xml 新增如下配置 <Connector connectionTimeout="20000" port="8088" ...

  10. nginx的脚本引擎(二)rewrite

    其实rewrite指令和上一篇说的if/set/return/break之类的没多大差别,但是rewrite用起来相对复杂,我就把他单独放到了这里.想要弄懂nginx的脚本引擎需要先明白处理reque ...