当前位置: 首页 > news >正文

网站放在服务器上手机房屋3d设计软件

网站放在服务器上,手机房屋3d设计软件,设计制作,网络商城的推广方法基本存储类型 EmptyDir 描述#xff1a;当 Pod 被调度到节点上时#xff0c;Kubernetes 会为 Pod 创建一个空目录#xff0c;所有在该 Pod 中的容器都可以访问这个目录。特点#xff1a; 生命周期与 Pod 绑定#xff0c;Pod 删除时#xff0c;数据也会丢失。适用于临时…基本存储类型 EmptyDir 描述当 Pod 被调度到节点上时Kubernetes 会为 Pod 创建一个空目录所有在该 Pod 中的容器都可以访问这个目录。特点 生命周期与 Pod 绑定Pod 删除时数据也会丢失。适用于临时存储需求如缓存或临时计算数据。支持多种存储类型如 tmpfs可以根据需求选择。 HostPath 描述将主机节点上的文件或目录挂载到 Pod 中的容器内。特点 允许 Pod 访问宿主机的文件系统。数据存储在节点上如果 Pod 被调度到不同的节点上数据不可用。适用于单节点集群或测试环境中不推荐在生产环境中使用。存在潜在的安全风险因为容器可以访问宿主机的文件系统。 NFS 描述网络存储解决方案将存储分布到多个节点或机器Kubernetes 可以使用这些存储系统作为 PV 后端。特点 提供集群级别的共享存储支持多个 Pod 挂载相同的卷。适用于需要共享数据的应用如分布式数据库。支持高可用性、数据复制、故障恢复等功能。需要额外的配置和管理通常适用于大型分布式应用或企业级场景。 EmptyDir详解 EmptyDir 是一种轻量级的存储选项用于 Pod 内部容器之间的数据共享或临时存储。下面是一些关于 EmptyDir 的补充信息 生命周期EmptyDir 的生命周期与 Pod 绑定。当 Pod 被创建时EmptyDir 被创建并挂载到 Pod 中所有需要它的容器上。当 Pod 被删除时EmptyDir 及其内容也会被删除。 使用场景 临时存储对于需要临时写入和读取数据但不要求数据持久化的场景如缓存或会话数据。 容器间数据共享当 Pod 中运行多个容器需要共享文件时EmptyDir 可以作为一个共享存储空间。 数据处理在数据被处理并存储到更持久的存储解决方案之前可以临时存储在 EmptyDir 中。 性能EmptyDir 存储的性能通常与宿主机的磁盘性能相当因为它直接存储在宿主机上。 限制由于 EmptyDir 与 Pod 的生命周期绑定因此它不适合存储需要跨 Pod 持久化的数据。此外EmptyDir 不保证数据的备份或复制所以在 Pod 重启或重建时数据可能会丢失。 配置EmptyDir 可以通过 Pod 定义中的 spec.volumes 字段来配置无需指定宿主机上的路径。 安全性EmptyDir 默认只对 Pod 内部的容器可见提供了一定程度的隔离。 在一个Pod中准备两个容器nginx和busybox然后声明一个Volume分别挂在到两个容器的目录中然后nginx容器负责向Volume中写日志busybox中通过命令将日志内容读到控制台。 [rootk8s-master ~]# vim volume-emptydir.yaml [rootk8s-master ~]# kubectl apply -f volume-emptydir.yaml Error from server (NotFound): error when creating volume-emptydir.yaml: namespaces test not found [rootk8s-master ~]# kubectl create ns test namespace/test created [rootk8s-master ~]# kubectl apply -f volume-emptydir.yaml pod/volume-emptydir created [rootk8s-master ~]# kubectl get pod -n test -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES volume-emptydir 0/2 ContainerCreating 0 35s none k8s-node1 none none [rootk8s-master ~]# kubectl get pod -n test -w NAME READY STATUS RESTARTS AGE volume-emptydir 0/2 ContainerCreating 0 40s volume-emptydir 2/2 Running 0 56s ^C[rootk8s-master ~]# kubectl exec -it volume-emptydir -n test /bin/bash kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. Defaulted container nginx out of: nginx, busybox rootvolume-emptydir:/# echo This is EmptyDir test /usr/share/nginx/html/index.html rootvolume-emptydir:/# exit exit [rootk8s-master ~]# kubectl get pod -n test -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES volume-emptydir 2/2 Running 0 80s 10.244.36.81 k8s-node1 none none [rootk8s-master ~]# curl 10.244.36.81 This is EmptyDir test [rootk8s-master ~]# kubectl logs -f volume-emptydir -n test -c busybox 10.244.235.192 - - [25/Jan/2025:09:39:19 0000] GET / HTTP/1.1 200 22 - curl/7.29.0 - 10.244.235.192 - - [25/Jan/2025:09:39:40 0000] GET / HTTP/1.1 200 22 - curl/7.29.0 - 10.244.235.192 - - [25/Jan/2025:09:39:41 0000] GET / HTTP/1.1 200 22 - curl/7.29.0 -通过curl命令进行访问可以看到访问成功的日志信息 HostPath详解 EmptyDir中数据不会被持久化它会随着Pod的结束而销毁如果想简单的将数据持久化到主机中可以选择HostPath。 HostPath就是将Node主机中一个实际目录挂在到Pod中以供容器使用这样的设计就可以保证Pod销毁了但是数据依据可以存在于Node主机上。 数据持久性与 EmptyDir 不同HostPath 卷将 Node 主机上的一个目录挂载到 Pod 中使得 Pod 内的容器可以访问和修改该目录上的文件。由于这些文件存储在 Node 主机上因此即使 Pod 被删除数据仍然可以在 Node 主机上保持。 用途HostPath 适用于需要持久化数据的场景例如数据库文件、配置文件等。然而由于 HostPath 直接使用了 Node 主机的文件系统可能会带来一些安全和管理上的挑战例如权限管理、数据一致性等问题。 [rootk8s-master ~]# vim volume-hostpath.yaml [rootk8s-master ~]# kubectl apply -f volume-hostpath.yaml pod/volume-hostpath created [rootk8s-master ~]# kubectl get pod -n test -w NAME READY STATUS RESTARTS AGE volume-emptydir 2/2 Running 0 9m26s volume-hostpath 2/2 Running 0 6s ^C[rootk8s-master ~]# kubectl describe pod volume-hostpath -n test Name: volume-hostpath Namespace: test Priority: 0 Node: k8s-node1/192.168.58.232 Start Time: Sat, 25 Jan 2025 04:47:14 -0500 Labels: none Annotations: cni.projectcalico.org/containerID: 12d55de1744ff89a73d0fb3c4f9cf45427847f3ca631f130147e2a41b9916c53cni.projectcalico.org/podIP: 10.244.36.82/32cni.projectcalico.org/podIPs: 10.244.36.82/32 Status: Running IP: 10.244.36.82 IPs:IP: 10.244.36.82 Containers:nginx:Container ID: docker://c0c42dab2b85a9d336abcba543be34740ce44c19453d41435882cc4e356ea18eImage: nginx:1.17.1Image ID: docker-pullable://nginxsha256:b4b9b3eee194703fc2fa8afa5b7510c77ae70cfba567af1376a573a967c03dbbPort: 80/TCPHost Port: 0/TCPState: RunningStarted: Sat, 25 Jan 2025 04:47:16 -0500Ready: TrueRestart Count: 0Environment: noneMounts:/var/log/nginx from logs-volume (rw)/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-bqnr4 (ro)busybox:Container ID: docker://ee04657f326faa26619d0ffe9acb277885aa792737aed9d3e343c570d17ff0a8Image: busybox:1.30Image ID: docker-pullable://busyboxsha256:4b6ad3a68d34da29bf7c8ccb5d355ba8b4babcad1f99798204e7abb43e54ee3dPort: noneHost Port: noneCommand:/bin/sh-ctail -f /logs/access.logState: RunningStarted: Sat, 25 Jan 2025 04:47:16 -0500Ready: TrueRestart Count: 0Environment: noneMounts:/logs from logs-volume (rw)/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-bqnr4 (ro) Conditions:Type StatusInitialized True Ready True ContainersReady True PodScheduled True Volumes:logs-volume:Type: HostPath (bare host directory volume)Path: /root/logsHostPathType: DirectoryOrCreatekube-api-access-bqnr4:Type: Projected (a volume that contains injected data from multiple sources)TokenExpirationSeconds: 3607ConfigMapName: kube-root-ca.crtConfigMapOptional: nilDownwardAPI: true QoS Class: BestEffort Node-Selectors: none Tolerations: node.kubernetes.io/not-ready:NoExecute opExists for 300snode.kubernetes.io/unreachable:NoExecute opExists for 300s Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 25s default-scheduler Successfully assigned test/volume-hostpath to k8s-node1Normal Pulled 23s kubelet Container image nginx:1.17.1 already present on machineNormal Created 23s kubelet Created container nginxNormal Started 23s kubelet Started container nginxNormal Pulled 23s kubelet Container image busybox:1.30 already present on machineNormal Created 23s kubelet Created container busyboxNormal Started 23s kubelet Started container busybox [rootk8s-master ~]# kubectl get pod -n test -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES volume-emptydir 2/2 Running 0 10m 10.244.36.81 k8s-node1 none none volume-hostpath 2/2 Running 0 98s 10.244.36.82 k8s-node1 none nonedescribe中看的pod调度到node1节点在master节点执行curl进行访问到node1节点下查看是否存在/root/logs目录并查看日志信息 [rootk8s-node1 ~]# ll /root/logs/ total 4 -rw-r--r--. 1 root root 95 Jan 25 04:49 access.log -rw-r--r--. 1 root root 0 Jan 25 04:47 error.log[rootk8s-node1 ~]# tail -f /root/logs/access.log 10.244.235.192 - - [25/Jan/2025:09:49:00 0000] GET / HTTP/1.1 200 612 - curl/7.29.0 - 10.244.235.192 - - [25/Jan/2025:09:49:48 0000] GET / HTTP/1.1 200 612 - curl/7.29.0 -NFS 虽然 HostPath 可以用于解决数据持久化的问题但它并不适用于跨节点的数据共享和高可用性场景。一旦 Pod 从一个节点迁移到另一个节点HostPath 卷中的数据就无法访问。这是因为 HostPath 卷依赖于特定节点上的文件系统而不是一个独立的网络存储系统。 为了解决这个问题确保数据在节点迁移时仍然可用通常推荐使用网络文件存储系统如 NFS (Network File System) 或 CIFS (Common Internet File System)。这两种协议允许 Pod 访问远程存储系统上的数据就好像它们是本地文件一样。 NFS 是一种网络文件系统协议它允许客户端计算机访问服务器上的文件和目录就像它们是本地文件一样。通过设置 NFS 服务器您可以将 Pod 中的存储直接连接到 NFS 系统上。这样即使 Pod 从一个节点迁移到另一个节点只要网络连接正常Pod 就可以继续访问数据。 需要在每个机器上都安装NFS yum install nfs-utils -y [rootk8s-master ~]# mkdir /nfstest [rootk8s-master ~]# vim /etc/exports [rootk8s-master ~]# systemctl restart rpcbind.service nfs-server.service[rootk8s-master ~]# vim volume-nfs.yaml [rootk8s-master ~]# kubectl apply -f volume-nfs.yaml pod/volume-nfs created [rootk8s-master ~]# kubectl get pod -n test -w NAME READY STATUS RESTARTS AGE volume-nfs 0/2 ContainerCreating 0 2s volume-nfs 0/2 ContainerCreating 0 3s volume-nfs 2/2 Running 0 3s ^C[rootk8s-master ~]kubectl get pod -n test -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES volume-nfs 2/2 Running 0 16s 10.244.36.88 k8s-node1 none none [rootk8s-master ~]# cd /nfstest/ [rootk8s-master nfstest]# ll total 4 -rw-r--r--. 1 root root 95 Jan 25 05:18 access.log -rw-r--r--. 1 root root 0 Jan 25 05:18 error.log [rootk8s-master nfstest]# tai -f access.log -bash: tai: command not found [rootk8s-master nfstest]# tail -f access.log 10.244.235.192 - - [25/Jan/2025:10:18:20 0000] GET / HTTP/1.1 200 612 - curl/7.29.0 - 10.244.235.192 - - [25/Jan/2025:10:18:47 0000] GET / HTTP/1.1 200 612 - curl/7.29.0 -在node1和node2节点执行如下命令 [rootk8s-node1 ~]# showmount -e 192.168.58.231 Export list for 192.168.58.231: /nfstest 192.168.58.0/24在master节点使用curl命令进行测试查看master节点/nfstest目录下是否存在访问日志   [rootk8s-master ~]# curl 10.244.36.88 !DOCTYPE html html head titleWelcome to nginx!/title stylebody {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;} /style /head body h1Welcome to nginx!/h1 pIf you see this page, the nginx web server is successfully installed and working. Further configuration is required./ppFor online documentation and support please refer to a hrefhttp://nginx.org/nginx.org/a.br/ Commercial support is available at a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p /body /html [rootk8s-master nfstest]# tail -f access.log 10.244.235.192 - - [25/Jan/2025:10:18:20 0000] GET / HTTP/1.1 200 612 - curl/7.29.0 - 10.244.235.192 - - [25/Jan/2025:10:18:47 0000] GET / HTTP/1.1 200 612 - curl/7.29.0 -
http://www.dnsts.com.cn/news/251374.html

相关文章:

  • 一流的嘉兴网站建设中国十大权威新闻媒体
  • 服务提供网站粤icp备案号查询网官网
  • 怎么创建网站域名品牌vi标志设计公司
  • 烟台福山网站建设营销型网站建设的指导原则不包括
  • 齐河网站建设网页设计分为哪些板块
  • 网站赏析案例网站推广的优点
  • 电商网站建设行情电子商务网站硬件建设的核心
  • 活动策划公司网站做网站要学那些
  • 网站关键词搜索排名网站安全检测工具
  • 广州网站建设报价单网页生成器
  • vps做网站怎么加速网页版微信登录手机会显示吗
  • 西安微网站制作郑州专业网站推广公司
  • 常用设计网站有哪些软件内网域名
  • 专业网站建设网页推广宣传片制作公司查询
  • 做电缆好的网站企业简介宣传片视频
  • 罗湖商城网站建设哪家技术好如何用腾讯云做网站
  • 如何申请网站空间夸克网页版
  • 镇江城乡建设网站首页网页升级访问更新中狼
  • 上海平台网站建设报品牌推广营销
  • 做网站播放未上映的电影专门做纪录片的网站
  • 高性能网站建设指南 百度云ipad 建网站
  • 抓取网站访客qq公司商标注册怎么弄
  • 网上做兼职的网站有哪些工作wordpress数据迁移还原教程
  • 万州网站建设多少钱美工设计培训
  • 网站内容栏目wamp做网站
  • 网站制作app开发公司网站seo站群软件
  • 物业公司网站设计外贸网站后台
  • 东莞网站建设搭建directory wordpress
  • 淮北网站建设求职简历太仓网站建设服务
  • 利鑫做彩票网站门户网站怎么建设