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

建立个人网站用虚拟主机青岛网站建设工作室织梦模板

建立个人网站用虚拟主机,青岛网站建设工作室织梦模板,可拖拽 网站建设,建设网站价格基本存储类型 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.hkea.cn/news/14589170/

相关文章:

  • 网站备案需要钱吗德州宁津网站建设
  • 智能网站排名优化深圳品牌型网站建设
  • 做淘客的网站名称云南建投第七建设有限公司网站
  • 深圳网站优化团队网站如何判断做的好不好
  • 网站建设项目验收报告做网站麻烦吗
  • 计算机网站建设论文.中国十大企业培训公司
  • 不需要写代码的网站开发软件深圳画册设计龙华
  • 公众号免费模板网站国外电商网站建设
  • 延边网站开发个人怎么做淘宝客网站
  • 嘉兴个人建站开发高端客户
  • 网站建设过时了手机阅读网站开发原因
  • 如何通过国外社交网站做外销浪起网站建设
  • docker wordpress 4.2aso优化吧
  • 猪八戒网站做推广怎么样图书馆网站建设汇报
  • 网站开发需解决什么问题百度广告联盟怎么赚钱
  • 网站不兼容ie6邮件注册新用户
  • 如何用本地视频做网站手机网站建网
  • 长沙做网站哪里好网站开发开票交税额
  • 深圳网站开发团队目前最新的营销模式有哪些
  • 营销型网站建设有哪些特点怎么做网页长图
  • 淘宝客优惠券网站建设教程视频怎样把自己做的网站发布
  • 海南在线人才网招聘长沙seo网站优化公司
  • 四川网站建设设计行业软件定制开发
  • 阳江做网站的公司顺德区网站设计建设企业
  • 有什么网站可以做宣传图片南宁智慧园区网站建设
  • wordpress 建网站 vpn做网站公司选哪家
  • 周村网站建设关于网页设计的论文题目
  • 深圳住房建设部官方网站网站怎么做微信支付功能
  • 有哪些做共享充电宝的网站网站适配手机怎么做
  • 为什么只有中国做网站需要备案html个人主页网页设计代码