惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Vercel News
Vercel News
Google DeepMind News
Google DeepMind News
罗磊的独立博客
WordPress大学
WordPress大学
The Cloudflare Blog
GbyAI
GbyAI
The Register - Security
The Register - Security
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog
A
About on SuperTechFans
U
Unit 42
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
Blog — PlanetScale
Blog — PlanetScale
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
T
The Exploit Database - CXSecurity.com
T
Tor Project blog
A
Arctic Wolf
H
Hacker News: Front Page
NISL@THU
NISL@THU
F
Full Disclosure
雷峰网
雷峰网
L
LINUX DO - 热门话题
Recent Announcements
Recent Announcements
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
Google Online Security Blog
Google Online Security Blog
I
InfoQ
Webroot Blog
Webroot Blog
S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
N
News | PayPal Newsroom
Forbes - Security
Forbes - Security
博客园 - Franky
V
Vulnerabilities – Threatpost
博客园 - 【当耐特】
Latest news
Latest news

k8s on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 metallb + ingress-nginx + argocd 本地部署 Kubernetes — k8s 手动安装 1.17.9 Kubernetes — containerd 安装和部署 Argo cd 安装和部署 Kubernetes — kubecost 分析 Kubernetes 成本 Ansible部署ceph集群 Kubernetes — 更新证书 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 kubernetes manual expansion kubernetes 调度过程 k8s本地联调神器kt-connect OpenELB:让k8s私有环境对外暴露端口 kubernetes ansible自动化部署 kubernetes 脚本快速安装 kubernetes面试题汇总 Kubernetes 安装 Harbor 搭建 Kubernetes 实验手册(1) Keepalived高可用 helm 安装 k8s 部署loki日志 Kubernetes 创建nfs存储类 Kubernetes k8s 组件
kubernetes 存储
2022-08-01 · via k8s on 打工人日志

kubernetes 存储

k8s 支持多种途径的多种类型的存储。例如 iSCSI,SMB,NFS,以及对象存储。都是不同类型的部署在云上或者自建数据中心的外部存储系统。k8s 上的所有存储都被称作

CSI 容器存储接口

CSI 是 k8s 存储体系中一部分,是一个开源项目,定义了一套基于标准的接口,从而使容器能够以一种统一的方式被不同的容器编排的工具使用。可以将插件称为provisioner

持久化

  • 持久化卷 (pv)
  • 持久化卷申请 (pvc)
  • 存储类 (sv)

PV 代表 k8s 的存储,pvc 代表的是许可证,赋予 pod 访问 pv 的权限。cs 使分配过程是动态的。

使用 iSCSI 操作存储

iscsi 卷能将 iSCSI (基于 IP 的 SCSI) 卷挂载到你的 Pod 中。 不像 emptyDir 那样会在删除 Pod 的同时也会被删除,iscsi 卷的内容在删除 Pod 时会被保留,卷只是被卸载。 这意味着 iscsi 卷可以被预先填充数据,并且这些数据可以在 Pod 之间共享。
iSCSI 的一个特点是它可以同时被多个用户以只读方式挂载。 这意味着你可以用数据集预先填充卷,然后根据需要在尽可能多的 Pod 上使用它。 不幸的是,iSCSI 卷只能由单个使用者以读写模式挂载。不允许同时写入。

创建 iscsi-pv.yaml iscsi-pvc.yaml

iscsi-pv.yaml

 1apiVersion: v1
 2kind: PersistentVolume
 3metadata:
 4  name: iscsi-pv
 5spec:
 6  capacity:
 7    storage: 500Gi
 8  accessModes:
 9    - ReadWriteOnce
10  iscsi:
11    targetPortal: 10.12.12.xxx:3260 # 修改
12    iqn: iqn.2000-01.com.synology:xxx.Target-1.21xxxxx344 # 修改
13    lun: 1

iscsi-pvc.yaml

 1apiVersion: v1
 2kind: PersistentVolume
 3metadata:
 4  name: iscsi-pv
 5spec:
 6  capacity:
 7    storage: 500Gi
 8  accessModes:
 9    - ReadWriteOnce
10  iscsi:
11    targetPortal: 10.12.12.xxx:3260 # 修改
12    iqn: iqn.2000-01.com.synology:xxx.Target-1.21xxxxx344 # 修改
13    lun: 1

hostPath

hostPath 卷能将主机节点文件系统上的文件或目录挂载到你的 Pod 中。 虽然这不是大多数 Pod 需要的,但是它为一些应用程序提供了强大的逃生舱。

  • 运行一个需要访问 Docker 内部机制的容器;可使用 hostPath 挂载 /var/lib/docker 路径。
  • 在容器中运行 cAdvisor 时,以 hostPath 方式挂载 /sys
  • 允许 Pod 指定给定的 hostPath 在运行 Pod 之前是否应该存在,是否应该创建以及应该以什么方式存在。
 1apiVersion: v1
 2kind: Pod
 3metadata:
 4  name: test-pd
 5spec:
 6  containers:
 7    - image: registry.k8s.io/test-webserver
 8      name: test-container
 9      volumeMounts:
10        - mountPath: /test-pd
11          name: test-volume
12  volumes:
13    - name: test-volume
14      hostPath:
15        # 宿主上目录位置
16        path: /data
17        # 此字段为可选
18        type: Directory

注意: FileOrCreate 模式不会负责创建文件的父目录。 如果欲挂载的文件的父目录不存在,Pod 启动会失败。 为了确保这种模式能够工作,可以尝试把文件和它对应的目录分开挂载,如 FileOrCreate 配置 所示。

hostPath FileOrCreate 配置示例

 1apiVersion: v1
 2kind: Pod
 3metadata:
 4  name: test-webserver
 5spec:
 6  containers:
 7    - name: test-webserver
 8      image: registry.k8s.io/test-webserver:latest
 9      volumeMounts:
10        - mountPath: /var/local/aaa
11          name: mydir
12        - mountPath: /var/local/aaa/1.txt
13          name: myfile
14  volumes:
15    - name: mydir
16      hostPath:
17        # 确保文件所在目录成功创建。
18        path: /var/local/aaa
19        type: DirectoryOrCreate
20    - name: myfile
21      hostPath:
22        path: /var/local/aaa/1.txt
23        type: FileOrCreate