飞天使-k8s知识点12-kubernetes资源对象5-Volume与ConfigMap等

本文主要是介绍飞天使-k8s知识点12-kubernetes资源对象5-Volume与ConfigMap等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 为什么需要volume
        • ConfigMap
        • Volume
        • nfs挂载volume
          • 持久卷的痛点

为什么需要volume

容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。 首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失——因为容器会以干净的状态重建k8s支持很多类型的卷
awsElasticBlockStore、azureDisk、azureFile、cephfs、cinder、configMap、csi、downwardAPI、emptyDir、fc (fibre channel)、flexVolume、flockegcePersistentDisk、gitRepo (deprecated)、glusterfs、hostPath、iscsi、local、nfs、persistentVolumeClaim、projected、portworxVolume、quobyte、rbd、scaleIO、secret、storageos、vsphereVolumeK8s 支持的卷基本上可以分为三类:配置信息、临时存储、持久存储。无论何种类型的应用,都会用到配置文件或启动参数。而 K8s 将配置信息进行了抽象,定义成了几种资源,主要有以下三种:ConfigMapSecretDownwardAPI
ConfigMap
onfigMap 卷通常以一个或多个 key: value 形式存在,主要用来保存应用的配置数据。其中 value 可以是字面量或配置文件。
不过,因为ConfigMap 在设计上不是用来保存大量数据的,所以在 ConfigMap 中保存的数据不可超过 1 MiB(兆字节)。
ConfigMap 有两种创建方式:通过命令行创建通过 yaml 文件创建命令行创建的: [root@kubeadm-master1 ~]# kubectl create configmap c1 --from-literal=foo=bar --from-literal=bar=bra.txt
configmap/c1 created
[root@kubeadm-master1 ~]# ll
总用量 24
-rw-------. 1 root root 1259 12月 26 2022 anaconda-ks.cfg
-rw-r--r--  1 root root   71 12月 22 13:46 command.sh
-rw-r--r--. 1 root root   13 4月  26 2023 ifcfg-eth0
-rw-r--r--  1 root root 1127 12月 21 15:08 kubecfg.crt
-rw-r--r--  1 root root 1679 12月 21 15:08 kubecfg.key
-rw-r--r--  1 root root 2496 12月 21 15:08 kubecfg.p12
[root@kubeadm-master1 ~]# kubectl get configmap
NAME               DATA   AGE
c1                 2      18s
kube-root-ca.crt   1      25d
[root@kubeadm-master1 ~]# kubectl describe configmap c1
Name:         c1
Namespace:    default
Labels:       <none>
Annotations:  <none>Data
====
bar:
----
bra.txt
foo:
----
bar
Events:  <none>
[root@kubeadm-master1 ~]#通过configmap-demo.yaml  yaml 文件创建的
kind: ConfigMap
apiVersion: v1
metadata:name:c2namespace: default
data:foo:barbar:baz
Volume
Kubernetes(也称为K8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。在Kubernetes中,Volume(卷)是一种抽象概念,用于提供容器持久化存储的解决方案。它允许容器在生命周期中存储和访问持久化数据。下面是对Kubernetes Volume功能的理解:持久化存储:Volume提供了一种持久化存储数据的方式,使得容器在重新启动、重新调度或维护迁移等场景下仍然能够访问之前的数据。它解决了容器中的数据持久性问题。抽象化和标准化:Volume在Kubernetes中是一个抽象层,它隐藏了底层存储细节,使得应用程序可以以一个统一的方式来访问和管理不同类型的存储解决方案,如本地存储、网络存储和云存储等。插件化支持:Kubernetes提供了丰富的Volume插件,可以满足不同场景和需求的存储要求。这些插件包括EmptyDir、HostPath、PersistentVolumeClaim(PVC)、NFS、AWS EBS、Azure Disk等,每个插件都有不同的特点和适用范围。容器级别的访问控制:Volumes可以以容器级别进行访问控制,不同容器可以使用不同的Volume实例,并根据需要进行读取和写入操作。这使得容器之间的数据隔离、共享和管理变得更加灵活和可控。动态供给和自动管理:Kubernetes支持动态供给和自动管理Volume。通过PersistentVolume(PV)和PersistentVolumeClaim(PVC)的机制,管理员可以预先配置存储资源并将其提供给应用程序。而应用程序只需要声明自己的存储需求(PVC),Kubernetes会自动选择和绑定适合的PV,并将其动态分配给应用程序。通过使用Kubernetes Volume功能,应用程序开发者可以更方便地处理数据的持久性和生命周期管理。它提供了一种统一和标准化的方式来管理容器中的持久化存储,使得容器更具可移植性、可扩展性和可靠性。
nfs挂载volume
apiVersion: v1
kind: Pod
metadata:name: nfs-pd
spec:containers:- name: test-containerimage: reg.westos.org/k8s/nginxvolumeMounts:- mountPath: /usr/share/nginx/htmlname: test-volumevolumes:- name: test-volumenfs:server: 172.25.254.4path: /nfsdata
持久卷的痛点
虽然通过使用持久卷,可以解决临时卷数据易丢失的问题。但目前持久卷的使用方式还存在以下痛点:Pod 开发人员可能对存储不够了解,却要对接多种存储安全问题,有些存储可能需要账号密码,这些信息不应该暴露给 Pod因此为了解决这些不足,K8s 又针对持久化存储抽象出了三种资源 PV、PVC、StorageClass。三种资源定义如下:PV 描述的是持久化存储数据卷PVC 描述的是 Pod 想要使用的持久化存储属性,既存储卷申明StorageClass 作用是根据 PVC 的描述,申请创建对应的 PVPV 和 PVC 的概念可以对应编程语言中的面向对象思想,PVC 是接口,PV 是具体实现。
有了这三种资源类型后,Pod 就可以通过静态供应和动态供应这两种方式来使用持久卷。

参考文档:
作者:又拍云
链接:https://juejin.cn/post/7186925237592653884
来源:稀土掘金

这篇关于飞天使-k8s知识点12-kubernetes资源对象5-Volume与ConfigMap等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/610755

相关文章

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚: