使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- Ingress-Ngnix

使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)

NFS 存在一个弊端,需要知道NFS服务器的地址,配在 yaml 中

PV:持久化存储,对存储资源进行抽象,对外提供可以调用的地方

PVC:用于调用,不需要关心内部实现细节

PV(PersistentVolume):是集群中由管理员配置的一段网络存储。 它是集群中的资源, 就像节点是集群资源一样。 PV 是容量插件, 如 Volumes, 但其生命周期独立于使用 PV 的任何单个 pod。 此 API 对象捕获存储实现的详细信息, 包括 NFS, iSCSI 或特定于云提供程序的存储系统。

PVC(PersistentVolumeClaim):是由用户进行存储的请求。 它类似于 pod。 Pod 消耗节点资源, PVC 消耗 PV 资源。 Pod 可以请求特定级别的资源( CPU 和内存) 。 声明可以请求特定的大小和访问模式( 例如, 可以一次读/写或多次只读) 。

虽然 PersistentVolumeClaims 允许用户使用抽象存储资源, 但是 PersistentVolumes 对于不同的问题, 用户通常需要具有不同属性( 例如性能) 。 群集管理员需要能够提供各种PersistentVolumes 不同的方式, 而不仅仅是大小和访问模式, 而不会让用户了解这些卷的实现方式。 对于这些需求, 有 StorageClass 资源。

StorageClass 为管理员提供了一种描述他们提供的存储的“ 类” 的方法。 不同的类可能映射到服务质量级别, 或备份策略, 或者由群集管理员确定的任意策略。 Kubernetes 本身对于什么类别代表是不言而喻的。 这个概念有时在其他存储系统中称为“ 配置文件” 。

PVC 和 PV 是一一对应的

PV 是群集中的资源。 PVC 是对这些资源的请求, 并且还充当对资源的检查。 PV 和 PVC 之间

的相互作用遵循以下生命周期:

Provisioning ——-> Binding ——– >Using——>Releasing——>Recycling

应用部署 、定义PVC(绑定PV)、定义PV(数据存储服务器IP,路径)

创建YAML文件

pvc.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-pvc
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: wwwroot
mountPath: /usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc --- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi

pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
nfs:
path: /nfs/pv
server: 172.16.3.181
# 创建目录
[root@k8smaster ~]# mkdir -p /nfs/pv
# 创建 pvc.yaml ,内容见上
[root@k8smaster ~]# vi pvc.yaml
# 创建 pv.yaml ,内容见上
[root@k8smaster ~]# vi pv.yaml
[root@k8smaster ~]# kubectl apply -f pvc.yaml
deployment.apps/nginx-pvs created
persistentvolumeclaim/my-pvc created
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
javademo1-d7856c75c-czv2g 1/1 Running 0 22h
javademo1-d7856c75c-n28rs 1/1 Running 0 22h
javademo1-d7856c75c-xzqjc 1/1 Running 0 22h
nginx-f89759699-5hkdw 1/1 Running 0 26d
nginx-nfs-788564fbc8-z9srr 1/1 Running 0 129m
nginx-pvc-58b7bf955f-5clzg 0/1 Pending 0 7s
nginx-pvc-58b7bf955f-lhvx4 0/1 Pending 0 7s
nginx-pvc-58b7bf955f-z2cg6 0/1 Pending 0 7s
[root@k8smaster ~]# kubectl apply -f pv.yaml
persistentvolume/my-pv created
[root@k8smaster ~]# kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/my-pv 5Gi RWX Retain Bound default/my-pvc 39s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/my-pvc Bound my-pv 5Gi RWX 2m13s
[root@k8smaster pv]# pwd
/nfs/pv
[root@k8smaster pv]# vi index.html
hello pvc
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
javademo1-d7856c75c-czv2g 1/1 Running 0 22h
javademo1-d7856c75c-n28rs 1/1 Running 0 22h
javademo1-d7856c75c-xzqjc 1/1 Running 0 22h
nginx-f89759699-5hkdw 1/1 Running 0 26d
nginx-nfs-788564fbc8-z9srr 1/1 Running 0 133m
nginx-pvc-58b7bf955f-5clzg 1/1 Running 0 3m17s
nginx-pvc-58b7bf955f-lhvx4 1/1 Running 0 3m17s
nginx-pvc-58b7bf955f-z2cg6 1/1 Running 0 3m17s
[root@k8smaster ~]# kubectl exec -it nginx-pvc-58b7bf955f-5clzg bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
root@nginx-pvc-58b7bf955f-5clzg:/# ls /usr/share/nginx/html/
index.html
root@nginx-pvc-58b7bf955f-5clzg:/# cat /usr/share/nginx/html/index.html
hello pvc
root@nginx-pvc-58b7bf955f-5clzg:/#

使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(PV&PVC)的更多相关文章

  1. k8s的持久化存储PV&&PVC

    1.PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足. 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volu ...

  2. 使用Ceph集群作为Kubernetes的动态分配持久化存储(转)

    使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ce ...

  3. 02 . Kubeadm部署Kubernetes及简单应用

    kubeadm部署Kubernetes kubeadm简介 # kubeadm是一位高中生的作品,他叫Lucas Kaldstrom,芬兰人,17岁用业余时间完成的一个社区项目: # kubeadm的 ...

  4. 使用kubeadm部署Kubernetes v1.13.3

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: 1. 安装要求 在开始之前,部署Kubernetes集群 ...

  5. [原]使用kubeadm部署kubernetes(一)

    #######################    以下为声明  ##################### 在公众号  木子李的菜田 输入关键词:   k8s 有系列安装文档 此文档是之前做笔记在 ...

  6. [转帖]CentOS 7 使用kubeadm 部署 Kubernetes

    CentOS 7 使用kubeadm 部署 Kubernetes   关闭swap 执行swapoff临时关闭swap. 重启后会失效,若要永久关闭,可以编辑/etc/fstab文件,将其中swap分 ...

  7. Kubeadm部署Kubernetes

    Kubeadm部署Kubernetes 1.环境准备 主机名 IP 说明 宿主机系统 k8s-master 10.0.0.101 Kubernetes集群的master节点 Ubuntu2004 k8 ...

  8. 附025.kubeadm部署Kubernetes更新证书

    一 查看证书 1.1 查看过期时间-方式一 1 [root@master01 ~]# tree /etc/kubernetes/pki/ 2 [root@master01 ~]# for tls in ...

  9. K8s 二、(1、kubeadm部署Kubernetes集群)

    准备工作 满足安装 Docker 项目所需的要求,比如 64 位的 Linux 操作系统.3.10 及以上的内核版本: x86 或者 ARM 架构均可: 机器之间网络互通,这是将来容器之间网络互通的前 ...

  10. Centos7 安装部署Kubernetes(k8s)集群

    目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...

随机推荐

  1. re1-100

    虽然关键的判断函数和"成功"的提示也在这里,但是具体对输入flag的操作却在后面 看到对数组bufParentRead[1]开始赋值"53fc275d81",b ...

  2. MongoDB 中的事务

    MongoDB 事务 前言 如何使用 事务的原理 事务和复复制集以及存储引擎之间的关系 WiredTiger 中的事务隔离级别 WiredTiger 事务过程 事务开启 事务执行 事务提交 事务回滚 ...

  3. 飞码LowCode前端技术之画布的设计

    简介 本章节从精准定位.分层设计.异步组件.拖拽四个方面分析飞码画布设计. 一.精准定位设计 飞码画布是一个套件,可对外提供画布能力.精准定位有两种情况,一是目标组件无子组件,而是目标组件有子组件. ...

  4. 带你玩转 Vite + Vue3 高低版本常用玩法

    一.首先来个 Vite 的通用简介 Vite 是一种新型前端构建工具,在我们保险前端项目中已经推动并应用很久了,Vite 能够显著降低构建时间,提升前端开发效率. 它主要由两部分组成: 一个开发服务器 ...

  5. Android12版本闹钟服务崩溃问题

    原文地址: Android12版本闹钟服务崩溃问题 - Stars-One的杂货小窝 公司项目app线上出现的崩溃记录问题,崩溃日志如下所示: Caused by java.lang.Security ...

  6. C++ 邮件槽ShellCode跨进程传输

    在计算机安全领域,进程间通信(IPC)一直是一个备受关注的话题.在本文中,我们将探讨如何使用Windows邮件槽(Mailslot)实现ShellCode的跨进程传输.邮件槽提供了一种简单而有效的单向 ...

  7. maven 配置(cmd 黑窗口执行 mvn 时默认的 settings 文件和 idea maven 相关配置)

    写在前面: 本文章用于记录博主平时遇到的问题,步骤略粗糙,目的在于记录一边后续博主自己查找,如果能帮助到其他人更好.文章中用到的链接均为自行引入,侵删,谢谢(2I2Rc*@JY8) 问题说明:在一次使 ...

  8. java制作游戏,如何使用libgdx,入门级别教学

    第一步,进入libgdx的官网.点击get started 进入这个页面,点击setup a project 进入这个页面直接点击,Generate a project. 点击下载,下载创建工具 它会 ...

  9. docker启动完美容器的过程

    这里是我用docker启动所有常见的容器完美的过程,就是一次创建,后面就可以一直使用 文档: nanshaws/docker-everything: 用docker来创建各种容器,完美文档教你按照步骤 ...

  10. Linux笔记01: Linux简介

    1.1 操作系统 计算机系统是由硬件子系统(处理器.内存.硬盘.键盘.鼠标.显示屏等)和软件子系统(如Windows操作系统.Office办公软件等)组成. 操作系统(Operating System ...