基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)

简介: 基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)

目录

 


回到顶部

安装 NFS 服务器: 首先,打开终端并安装 NFS 服务器软件包:

sudo apt update
sudo apt install nfs-kernel-server

回到顶部

创建共享目录: 决定哪个目录你想要共享,然后创建它(如果还不存在):

sudo mkdir -p /nfs/data

回到顶部

配置共享目录权限: 配置目录的权限,确保 NFS 客户端可以访问它:

sudo chown root:root /nfs/data
sudo chmod 777 /nfs/data

回到顶部

编辑 /etc/exports 文件: 决定你想要共享的目录和哪些客户端可以访问它,然后编辑 /etc/exports 文件:

sudo nano /etc/exports

在这个文件中,添加以下行

/nfs/data *(rw,sync,no_subtree_check,no_root_squash)

回到顶部

应用 exports 文件并重启服务: 修改完 /etc/exports 文件后,应用更改并重启 NFS 服务:

sudo exportfs -ra
sudo systemctl restart nfs-kernel-server

回到顶部

节点安装数据卷驱动

每个节点都要运行 apt install nfs-common

回到顶部

k8s配置文件

# hustoj-storage-class.yml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: hustoj-storage-class
provisioner: kubernetes.io/nfs
parameters:
  nfsServer: 192.168.215.129
  nfsPath: /nfs/data
  readOnly: "false"
#pv-definition.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: hustoj-pv
spec:
  storageClassName: hustoj-storage-class
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 192.168.215.129
    path: /nfs/data
#pvc-definition.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: hustoj-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: hustoj-storage-class
#nginx-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-deployment
 namespace: default
spec:
 replicas: 6
 selector:
   matchLabels:
     app: nginx
 template:
   metadata:
     labels:
       app: nginx
   spec:
     securityContext:
       fsGroup: 0
       runAsUser: 0
     containers:
       - name: nginx
         image: registry.cn-shanghai.aliyuncs.com/shiningrise/hustoj:v1.6
         securityContext:
           runAsUser: 0
           allowPrivilegeEscalation: true
         ports:
         - containerPort: 80
         volumeMounts:
         - mountPath: /volume  # 将卷挂载到容器内的 `/path/to/mount` 路径
           name: hustoj-volume  # 引用之前定义的卷名称
     volumes:
       - name: hustoj-volume
         persistentVolumeClaim:
           claimName: hustoj-pvc
#nginx-service.yml
apiVersion: v1
kind: Service
metadata:
 name: nginx-service
 namespace: default
spec:
 selector:
   app: nginx
 loadBalancerIP: 192.168.215.200
 ports:
   - protocol: TCP
     port: 80
     targetPort: 80
 type: LoadBalancer #NodePort LoadBalancer
YAML 复制 全屏

回到顶部

相关文件下载

https://files.cnblogs.com/files/shiningrise/k8s_3.zip?t=1715732180&download=true


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
缓存 网络协议 测试技术
NFS挂载信息如何调整?
NFS挂载信息如何调整?
1178 3
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
574 12
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
921 15
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
1701 13
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
1141 2
|
Linux
如何查看当前的NFS挂载信息?
如何查看当前的NFS挂载信息?
3479 2
|
Kubernetes 网络协议 网络安全
k8s中网络连接问题
【10月更文挑战第3天】
1331 7
|
Unix Linux 网络安全
NFS挂载服务
【10月更文挑战第14天】
1258 2
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
2736 1