Kubernetes中, 有这不同方式的内容挂载, 简单记录一下他们的配置方式.

ConfigMap

配置内容

内容配置

apiVersion: v1
kind: ConfigMap
metadata:name: test-config
data: # 添加配置的 key-value 内容test-key: test-value

引入

apiVersion: v1
kind: Pod
spec: containers: - name: testimage: nginxenv:# 场景1: 可以用来配置环境变量- name: ENV_NAMEvalueFrom: # 指定某一个 configMap 中的某个 key 作为 valueconfigMapKeyRef:name: test-configkey: test-key# 定义进行挂在的数据卷volumeMounts:- name: config-volumemountPath: /etc/configenvFrom:# 场景2: 将其整个导入作为 env- configMapRef:name: test-configvolumes: - name: config-volume# 场景3: 将 ConfigMap 作为数据进行导入# 导入后, key作为文件名, value 作为文件内容 configMap:name: test-config

Secret

存放一些加密信息, 当前加密就是base64

配置挂载

其使用方式基本和ConfigMap相同, 就是单纯的换个字段名

内容配置

apiVersion: v1
kind: Secret
metadata: name: test-secret
type: Opaque
data: # 这里存放的是 base64 编码的内容password: cGFzc3dvcmQ=

引入

apiVersion: v1
kind: Pod
spec: containers: - name: testimage: nginxenv:# 场景1: 可以用来配置环境变量- name: ENV_NAMEvalueFrom: # 指定某一个 configMap 中的某个 key 作为 valuesecretKeyRef: name: test-secretkey: password# 定义进行挂在的数据卷volumeMounts:- name: config-volumemountPath: /etc/configenvFrom:# 场景2: 将其整个导入作为 env- secretRef:name: test-secretvolumes: - name: config-volume# 场景3: 将 Secret 作为数据进行导入# 导入后, key作为文件名, value 作为文件内容 secret:secretName: test-secret

镜像仓库鉴权

当拉取的镜像仓库是私有仓库时, 需要增加鉴权内容

内容配置

apiVersion: v1
kind: Secret
metadata:name: test-register-secret
type: kubernetes.io/dockerconfigjson
data:# 文件 ~/.docker/config.json 的 base64 编码内容# 其内容就是个 json: {"auths":{"test.pull.com":{"username":"admin","password":"123456","email":"hujingnb@qq.com","auth":"YWRtaW46MTIzNDU2"}}}.dockerconfigjson: eyJhdXRocyI6eyJ0ZXN0LnB1bGwuY29tIjp7InVzZXJuYW1lIjoiYWRtaW4iLCJwYXNzd29yZCI6IjEyMzQ1NiIsImVtYWlsIjoiaHVqaW5nbmJAcXEuY29tIiwiYXV0aCI6IllXUnRhVzQ2TVRJek5EVTIifX19

这玩意通过配置文件生成费点劲, 所有可以通过命令行直接生成:

kubectl create secret docker-registry test-register-secret \--docker-server=<你的镜像仓库服务器> \--docker-username=<你的用户名> \--docker-password=<你的密码> \--docker-email=<你的邮箱地址>

可以通过命令查看现有 secret 鉴权内容:

kubectl get secret test-register-secret --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode

引入

apiVersion: v1
kind: Pod
spec: containers: - name: testimage: nginx# 指定拉取镜像是使用的配置信息imagePullSecrets: - name: test-register-secret

Volume

直白的说, 就是磁盘的挂载.

举个简单的使用例子

apiVersion: v1
kind: Pod
spec: containers: - name: testimage: nginx# 定义进行挂在的数据卷volumeMounts:- name: config-volumemountPath: /etc/configvolumes: - name: config-volumehostPath: path: /usr/etc/nginx/config

上面将本地的目录 /usr/etc/nginx/config 挂在到的容器的 /etc/config 上.

注意看其中的hostPath参数, 还可以替换成其他的, k8s支持很多类型的挂载卷, 这里就不一一举例了, 具体可通过kubectl explain pod.spec.volumes 查看. 简单列举几个感觉比较常用的:

  • emptyDir: 在 Node 上开一个空的目录用于共享.
  • hostPath: 指定挂载 Node 本地路径

Kubernetes存储卷的使用相关推荐

  1. 课时 21:Kubernetes 存储架构及插件使用(阚俊宝)

    本文将主要分享以下三方面的内容: Kubernetes 存储体系架构: Flexvolume 介绍及使用: CSI 介绍及使用. Kubernetes 存储体系架构 引例: 在 Kubernetes ...

  2. 从零开始入门 K8s | Kubernetes 存储架构及插件使用

    作者 | 阚俊宝 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 21 讲. 关注"阿里巴巴云原生"公众号,回复关键词**&quo ...

  3. kubernetes系列12—二个特色的存储卷configmap和secret

    本文收录在容器技术学习系列文章总目录 1.configmap 1.1 认识configmap ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件.ConfigMa ...

  4. kubernetes系列10—存储卷详解

    kubernetes系列10-存储卷详解 1.认识存储卷 1.1 背景 默认情况下容器中的磁盘文件是非持久化的,容器中的磁盘的生命周期是短暂的,这就带来了一系列的问题:第一,当一个容器损坏之后,kub ...

  5. 阿里云Kubernetes CSI实践—NAS动态存储卷使用

    1. 前言 NAS存储盘能将nfs(网络文件系统)挂载到你的Pod中,阿里云Kubernetes CSI支持静态存储卷挂载和动态存储卷挂载2种方式, 在静态存储卷挂载的方式中,通常需要手动编辑和创建一 ...

  6. Kubernetes—动态存储卷配置(StorageClass资源)(十二)

    StorageClass的介绍   StorageClass是对存储资源的一个抽象定义.与静态模式的存储卷配置(就是集群管理员手动去创建持久卷PV),StorageClass是一种动态模式的存储卷配置 ...

  7. Kubernetes(K8s)基本概念:Volume(存储卷)、Persistent Volume

    Kubernetes(K8s)基本概念:Volume(存储卷) 一.Volume(存储卷) Volume是Pod中能够被多个容器访问的共享目录. K8s中的Volume定义在Pod上,然后被一个Pod ...

  8. @kubernetes(k8s)数据持久化Volume存储卷(emptyDir、hostPath、NFS、StorageClass)

    文章目录 kubernetes(k8s)数据持久化Volume 一.数据持久化 1.Vlolume概述 2.数据卷的分类 3.常用的四种数据卷 4.Pod使用Volume步骤: 5. volume基本 ...

  9. 实战Kubernetes动态卷存储(NFS)

    之前的< Kubernetes持久卷实战两部曲>系列中,我们实战了先声明一个存储卷,再使用这个存储卷,这种方式要求每次都要提前申明存储,不是很方便,而动态卷存储不需要提前申明,而是使用时自 ...

最新文章

  1. 你必须了解的微服务架构设计的10个要点!
  2. 使用ramdisk 优化nagios IO性能
  3. 【Oracle】触发器最系统入门学习指导
  4. 再度冲刺“农村电商第一股”,汇通达还有什么法宝?
  5. python基础教程:数值与字符串类型
  6. Linux sftp用法
  7. 世界公认最好的记忆方法_全球公认最好的12个教育孩子的方法,值得每个家长收藏学习!...
  8. linux非阻塞的socket EAGAIN的错误处理【转】
  9. Ubuntu Linux 提出新的发布模式——测试周
  10. [导入]创建DataTable对象
  11. python在建筑施工方面的应用_有哪些关于 Python 在建筑中的应用和教程?
  12. Gradle sync failed: Unsupported method: NativeArtifact.getSourceFolders().
  13. java项目收获总结_java开发项目收获心得
  14. oracle支持sha256加密算法,Sha256 加密算法
  15. 计算机网络 专有名词英文缩写
  16. K.论演员的自我修养---组合数的运用路径计数
  17. CSP介绍、以及使用CryptoAPI枚举CSP并获取其属性
  18. 中央电大 c语言程序设计a 试题,中央电大2008年秋C语言程序设计A试题5
  19. ChatGPT国内怎么用?官网实在太麻烦了,ChatGPT可以直接国内使用吗?
  20. Python基础第一周

热门文章

  1. jsp和java使用值_如何将表单的值从jsp发送到Java
  2. 碧雪情天服务器地址源如何修改,稀有游戏《碧雪情天online》网络版王者归来一键服务端+客户端 支持转生系统和新图...
  3. 打开黑色_垃圾桶里的黑色塑料袋,打开一看,倒吸一口气!
  4. gateway sentinel 熔断 不起作用_Sentinel 1.8.0 年度版本发布,熔断降级重构升级
  5. 笔记本屏幕30hz_你真的了解笔记本电池和电源适配器吗?
  6. 用python编写最简单的记事本_Python使用字典实现的简单记事本功能示例
  7. 中怎样载入选区_PS----关于选区的选取
  8. Java开发中定时器的使用
  9. 论文页眉奇偶页不同怎么设置_怎样设置Word页眉页脚奇偶页不同?
  10. python中setup函数的用法_python学习之setUp函数和tearDown函数