kubernetes存储入门(kubernetes)

实验环境依旧是三个节点拉取镜像,然后在master节点拉取资源清单:

然后同步会话,导入镜像;

存储入门

ConfigMap

volume卷--》volumemount(挂载卷)

Glusterfs

NFS

ISCSI

HostPath

ConfigMap

Secret

EmptyDir

PVC

云原生存储技术:cephFS

emptydir:并不会在主机上体现出来,会在同一个pod内不同容器间体现出来;

pod(容器1和容器2):两个容器间共享目录;

docker主机

k8s主机

apiVersion: apps/v1

这指定了使用的Kubernetes API版本,apps/v1是Deployment资源的稳定版本,用于定义和管理应用部署。

kind: Deployment

这指定了YAML文件中定义的资源类型为Deployment。Deployment是Kubernetes中用于声明式地更新应用和服务的高级抽象。

metadata

metadata部分包含了Deployment的元数据。

  • labels: 定义了一组键值对,用于标识和选择对象。这里定义了app: nginx标签,用于选择和标识这个Deployment。

  • name: Deployment的名称,这里是nginx。

  • namespace: Deployment所在的命名空间,默认是default。命名空间用于将集群内的资源逻辑上隔离。

spec

spec部分定义了Deployment的规格。

  • replicas: 指定了需要运行的Pod副本数量,这里是1。

  • selector: 一个标签选择器,用于指定Deployment管理的Pods的标签。这里选择了标签为app: nginx的Pods。

  • template: 定义了Pod的模板,用于创建新的Pods。

    • metadata: Pod模板的元数据,同样包含了labels来定义Pod的标签。

    • spec: Pod模板的规格。

      • containers: 定义了Pod中运行的容器列表。

        • 第一个容器使用了nginx:1.7.9镜像,设置了imagePullPolicy为IfNotPresent(如果本地没有镜像,则从远程仓库拉取),并挂载了名为share-volume的卷到/opt目录。

        • 第二个容器同样使用了nginx:1.7.9镜像,但通过设置command覆盖了容器的默认启动命令,使容器在启动后执行sh -c sleep 3600命令(即睡眠3600秒),并挂载了share-volume卷到/mnt目录。

      • volumes: 定义了Pod中使用的卷。

        • 这里定义了一个名为share-volume的空目录卷(emptyDir),它将在Pod的每个容器中共享。注释掉的#medium: Memory表示如果取消注释,这个卷将会存储在内存中,而不是默认的磁盘上,但这通常不是emptyDir卷的标准用法,因为emptyDir卷默认就是基于节点的磁盘存储的。

总结

这个Deployment配置定义了一个包含两个nginx容器的Pod,它们都挂载了同一个空目录卷(share-volume),但第二个容器在启动后不会运行nginx服务,而是睡眠3600秒。这种配置可能用于测试、日志收集或需要容器间共享数据的场景。注意,由于两个容器都试图使用同一个端口(nginx默认端口80),这种配置在实际部署中可能无法正常工作,除非nginx配置被修改以监听不同的端口或使用其他网络配置。

创建出来:

然后登录到容器中进行验证:

然后登录到另外一个容器中应该能够看到创建的文件;

  1. UTC与本地时间的差异

:UTC(协调世界时)是全球统一的时间标准,也称为零时区时间。而中国位于东八区,因此中国的标准时间(CST,中国上海时间)是UTC时间加上8小时。

如何解决时间问题:当前是亚洲上海时区;

而容器中是默认的时间。即:格林尼治天文台的时区;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值