使用 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. java泛型<? extends E>和<? super E>的区别和适用场景

    <? extends E>是Upper Bound(上限)的通配符,用来限制元素类型的上限,如: List<? extends Fruit> fruits; 表示集合中的元素的 ...

  2. 快速入门:构建您的第一个 .NET Aspire 应用程序

    前言 云原生应用程序通常需要连接到各种服务,例如数据库.存储和缓存解决方案.消息传递提供商或其他 Web 服务..NET Aspire 旨在简化这些类型服务之间的连接和配置.在本快速入门中,您将了解如 ...

  3. C++跨DLL内存所有权问题探幽(二)CRT中MT和MD混用导致的堆损坏

    0xC0000374: 堆已损坏. (参数: 0x00007FFA1E9787F0). _Mem 是 nullptr 我在开发的过程中有遇到上面两个东西的bug,百思不得其解,最后才发现这个和两个DL ...

  4. 构建满足流批数据质量监控用火山引擎DataLeap

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 面对今日头条.抖音等不同产品线的复杂数据质量场景,火山引擎 DataLeap 数据质量平台如何满足多样的需求?本文 ...

  5. 一道入门的java安全题

    [XCTF]Zhuanxv 收获 java题的一般流程 HQL注入 SQL注入 看题 目录扫描 dirsearch扫目录,发现list目录: 一个登录界面,本着尽量不写sql注入题目的原则(因为太菜了 ...

  6. STM32外设:通用输入输出 GPIO、EXIT

    主要外设: GPIO:General Purpose I/O 一般用途IO EXIT:External Interrupt/Event Controller 外部中断/事件控制器(STM32) 辅助外 ...

  7. CentOS 8.1成功安装最新Node.js 20教程(含用到的全部命令和截图演示)

    yum换镜像和源 CentOS 已经停止维护的问题.2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,Ce ...

  8. Cloudeye对接Prometheus实现华为云全方位监控

    本文分享自华为云社区<Cloudeye对接Prometheus实现华为云全方位监控>,作者:可以交个朋友 . 一. 背景 云眼系统Cloudeye服务为我们提供了针对弹性云服务器.宽带等资 ...

  9. C++ Qt开发:Charts折线图绑定事件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts ...

  10. Pulsar3.0 升级指北

    Pulsar3.0 介绍 Pulsar3.0 是 Pulsar 社区推出的第一个 LTS 长期支持版本. 如图所示,LTS 版本会最长支持到 36 个月,而 Feature 版本最多只有六个月:类似于 ...