首页 > 其他分享 >K8S的StorageClass实战(NFS)

K8S的StorageClass实战(NFS)

时间:2024-09-22 13:51:03浏览次数:9  
标签:tomcat 创建 yaml NFS StorageClass K8S storageclass

本次实战的目标是快速创建NFS类型的StorageClass,并验证该StorageClass正常可用,全文由以下部分组成:

  1. 创建StorageClass;

  2. 通过helm下载tomcat的chart;

  3. 修改chart,让tomcat使用刚才创建的StorageClass;

  4. 在NFS服务端检查文件夹已正常写入;

环境信息和准备工作

以下是创建StorageClass必备的环境信息:

  1. Kubernetes:1.15

  2. Kubernetes宿主机:CentOS Linux release 7.7.1908

  3. NFS服务:IP地址192.168.50.135,文件夹/volume1/nfs-storageclass-test

参考文章

如果您想了解Kubernetes和NFS搭建的更多信息,请参考:

  1. 《kubespray2.11安装kubernetes1.15》

  2. 《Ubuntu16环境安装和使用NFS》

  3. 《K8S使用群晖DS218+的NFS》

如果您已经准备好了kubernetes和NFS,咱们就开始实战吧;

如何创建StorageClass

把创建StorageClass要做的的事情理清楚:

  1. 创建namespace,这里用hello-storageclass(您也可以选用自己喜欢的);

  2. 创建rbac:因为StorageClass有对应的pod要运行,每个pod都有自己的身份即serviceaccount,而这个serviceaccount是和某个角色绑定的,所以要创建:serviceaccount、rule、rolebinding;

  3. 创建provisioner,即关联NFS的工作类,负责给PVC提供存储资源,这里用的是nfs-client-provisioner;

  4. 创建StorageClass,所有需要PVC通过该StorageClass即可获得存储空间;

接下来请SSH登录kubernetes环境,按照上述步骤操作;

创建StorageClass

  1. 创建namespace:kubectl create namespace hello-storageclass

  2. 创建rbac的脚本直接从我的github下载吧,地址:https://raw.githubusercontent.com/zq2599/blog_demos/master/storageclass-demo/rbac.yaml

  3. 下载的rbac.yaml文件中,namespace是kafka-test,现在要替换成hello-storages,执行命令替换:sed -i ‘s/kafka-test/hello-storageclass/’ rbac.yaml

  4. 创建rbac:kubectl apply -f rbac.yaml

  5. 创建provisioner的脚本也从我的github下载,地址:https://raw.githubusercontent.com/zq2599/blog_demos/master/storageclass-demo/deployment.yaml

  6. 下载的deployment.yaml文件中,namespace是kafka-test,现在要替换成hello-storages,执行命令替换:sed -i ‘s/kafka-test/hello-storageclass/’ deployment.yaml

  7. 打开deployment.yaml,设置NFS参数,修改下图红框的四个参数,红框1和3都是NFS server地址,红框2和4都是NFS分配的文件夹目录,请您按照实际的NFS资源来设置:

在这里插入图片描述

  1. 创建provisioner:kubectl apply -f deployment.yaml

  2. 强烈建议用kubectl describe pod xxxxxx -n hello-storageclass和kubectl logs -f xxxxxx -n hello-storageclass命令查看provisioner是否成功创建,下图是我曾经遇到的问题,NFS服务端权限设置有误导致NFS无法使用:

在这里插入图片描述

  1. 创建StorageClass的脚本也从我的github下载,地址:https://raw.githubusercontent.com/zq2599/blog_demos/master/storageclass-demo/class.yaml

  2. 下载的class.yaml无需修改,直接使用:kubectl apply -f class.yaml

  3. class.yaml中的StorageClass名为managed-nfs-storage,后面的PVC就用这个名字去申请存储空间;

  4. 用df命令来检查挂载情况,发现NFS的已经挂载到K8S宿主机:

在这里插入图片描述

  1. 至此,StorageClass已经就绪,K8S环境中的PVC可以申请使用了,接下来通过实战验证应用的pod能否使用StorageClass的存储空间;

准备工作

  1. 接下来的实战是通过helm在kubernetes部署tomcat,该tomcat所需的存储空间是通过StorageClass分配的,请您在kubernetes上准备好helm,我这里用的是2.16版本

  2. helm的安装和使用请参考《部署和体验Helm(2.16.1版本)》

tomcat使用StorageClass实战

  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文件夹,进入后打开values.yaml文件,找到persistence节点,增加下图红框中的内容:

在这里插入图片描述

  1. 在tomcat目录下执行命令:

helm install --name-template tomcat001 -f values.yaml . --namespace hello-storageclass

  1. 查看tomcat的pod和service情况,一切正常,并且端口映射到了宿主机的30300:

在这里插入图片描述

标签:tomcat,创建,yaml,NFS,StorageClass,K8S,storageclass
From: https://blog.51cto.com/u_17015020/12080292

相关文章

  • k8s集群,master节点的初始化所用到的,init文件的分析,master节点的核心组件的作用,node节
    标准的k8s集群有三个组成部分管理控制节点、计算节点、私有镜像仓库。管理控制节点的功能:提供集群的控制对集群进行全局决策检测和响应集群事件管理控制节点中有四大核心服务服务端口含义用途APIServer6443api接口负责接收请求,实现功能Scheduler......
  • k8s怎么配置健康检查启动时间
    动一下小手点一下赞。谢谢!你的赞就是我更新的动力。在Kubernetes(简称K8S)中,健康检查是非常重要的一个概念,它可以确保你的应用程序始终处于可用状态。而健康检查启动时间k8s,则是指在部署应用程序时,如何配置健康检查的启动时间,以确保服务在启动后一段时间内不会被认为是不可用。下面......
  • 云原生k8s高频面试题
    1.k8sservice有哪些类型?通过创建service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。其主要类型有:ClusterIP:虚拟的服务IP地址,该地址用于k8s集群内部的pod访问,在Node上kube-proxy通过设置的iptables规则进行转发;NodeP......
  • 【工具使用】【JProfiler】【K8S】JProfiler 直接连接你的阿里云上的 ACK 或者你的 K8
    1 前言最近有个线上系统的CPU比较高,当然我们可以去线上导一份快照,然后分析快照。最近发现JProfiler可以直接连接你线上的集群然后分析某个服务,直接可以在本地看到你服务的各种运行情况,当然这可能会拖慢你的服务,因为它也是通过JVM本身提供的远程加载Agent继而收集各种信......
  • k8s集群更新证书(kubeadm方式部署的集群)
    特别注意:证书到期前替换!!!先查看有哪些证书即将过期点击查看代码foritemin`find/etc/kubernetes/pki-maxdepth2-name"*.crt"`;doopensslx509-initem-text-noout|grepNot;echo======================item===============;doneforfin(ls/etc/kubernetes/......
  • k8s部署kubepi
    Kubepikubepi是飞致云旗下品牌,部署很方便,页面布局简单,授权方便且颗粒度较细,没有集群数量限制,但是用户名不支持邮箱,这点不知道啥时候改进。1.pvc.yaml点击查看代码apiVersion:v1kind:PersistentVolumeClaimmetadata:name:pvc-kubepinamespace:itcast-opsspec:......
  • 基础网络安全-K8S之安全漏洞扫描
    一、前言在之前的文章《Docker安全学习之——Docker安全总结》中介绍了docker搭建后使用工具进行漏洞扫描,本篇则是介绍的在K8S搭建后需要开展的扫描工作,包括K8S自身的组件以及docker镜像等,这里介绍的是trivy这一款工具。二、工具简要介绍Trivy工具的GITHUB地址为:https://github.co......
  • kubeasz 部署k8s1.30.1集群
    实验环境系统:ubuntu24.04cat/etc/hosts192.168.0.71jichao71192.168.0.72jichao72192.168.0.73jichao73192.168.0.74jichao74192.168.0.75jichao75主节点安装ansible#主节点安装apt-get-yinstallansible下载kubeasz最新版本exportrelease=3.6.4wget......
  • 如何确保k8s中node高可用
    动一下小手点一下赞。谢谢!你的赞就是我更新的动力。Kubernetes(K8S)是一个开源的容器编排引擎,能够自动化管理容器化应用程序的部署、扩展和运维。为了保证K8S中node的高可用性,我们可以通过配置合适的调度策略和节点健康检查来确保集群中的节点不会单点故障。下面将介绍如何实现在K8S......
  • 配置NFS共享
    服务端:ServerAip:172.168.125.100客户端:ServerBIP:172.168.125.101一、NFS服务端的配置1.配置好本地yun源后,先确认系统是否已经安装NFS软件包使用rpm-qa|grep-infs查看显示如下图表示已安装;如果未安装使用yum-yinstallnfs-utilsrpcbind进行安装二、配置NFS主文件/etc/ex......