Pod 共享存储

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shida_csdn/article/details/85116146

一、前言

       Pod 是 kubernetes 的最小工作单元,每个 Pod 包含一个或多个容器。

       Pod 中的容器会作为一个整体被 Master 调度到一个 Node 上运行。

       Kubernetes 引入 Pod 主要基于下面两个目的:

       1.  可管理性

            有些容器天生就是需要紧密联系,一起工作。

            Pod 提供了比容器更高层次的抽象,将它们封装到一个部署单元中。

            Kubernetes 以 Pod 为最小单位进行调度、扩展、共享资源、管理生命周期。

       2.  通信和资源共享

            Pod 中的所有容器使用同一个网络 namespace,即相同的 IP 地址和 Port 空间。

            它们可以直接用 localhost 通信。

            同样地,这些容器可以共享存储,当 kubernetes 挂载 volumn 到 Pod,

            本质上是将 volumn 挂载到 Pod 中的每一个容器。

二、验证 Pod 共享存储

       首先,我们创建一个 Pod,包含两个 busybox 容器,busybox.yaml 文件内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: busybox
spec:
  containers:
  - image: busybox
    name: busybox-01
    command: ["tail"]
    args: ["-f","/etc/hosts"]
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  - image: busybox
    name: busybox-02
    command: ["tail"]
    args: ["-f","/etc/hosts"]
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

         执行如下命令,创建 Pod:

    # kubectl create -f busybox.yaml

          打开两个终端,分别 exec 到 busybox-01 和 busybox-02

    # kubectl exec -it  busybox -c busybox-01 sh

    # kubectl exec -it  busybox -c busybox-02 sh

         A. 验证普通目录是否共享

             在 busybox-01 创建 /home/ff 文件夹

             

             在 busybox-02 查看 /home 目录

             

             结论:普通目录不共享

         B. 验证特殊文件是否共享(hosts、hostname、resolv.conf)

              在 busybox-01 修改文件内容

              

              在 busybox-02 查看文件内容

              

             结论:特殊文件共享(hosts、hostname、resolv.conf)

        C. 验证挂载目录是否共享

             在 busybox-01 的 /cache 挂载目录建立文件

             

             在 busybox-02 查看其内容

             

              结论:挂载目录可以实现共享(hosts、hostname、resolv.conf)

猜你喜欢

转载自blog.csdn.net/shida_csdn/article/details/85116146
pod