image.png
    image.png
    创建一个新的目录,用作将来创建所需新的资源的配置清单目录:

    “mkdir /opt/kubernetes-resources”

    随后创建新的namespaces资源清单:

    “vim namespaces-storage”

    apiVersion: v1
    kind: Namespace
    metadata:
    name: storage
    labels:
    name: storage

    image.png
    应用并创建资源:

    “kubectl apply -f namespaces-storage”

    image.png
    用dashboard查看,创建成功,用命令行也行

    image.png
    新建pod yaml配置文件并指定挂载目录与类别,与之不同的是,我们的namespace空间用我自己指定的storage,以示区分

    apiVersion: v1
    kind: Pod
    metadata:
    name: volume-emptydir
    namespace: storage
    spec:
    containers:
    - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts: # 将logs-volume挂在到nginx容器中,对应的目录为 /var/log/nginx
    - name: logs-volume
    mountPath: /var/log/nginx
    - name: busybox
    image: busybox:latest
    command: [“/bin/sh”,”-c”,”tail -f /logs/access.log”] # 初始命令,动态读取指定文件中内容
    volumeMounts: # 将logs-volume 挂在到busybox容器中,对应的目录为 /logs
    - name: logs-volume
    mountPath: /logs
    volumes: # 声明volume, name为logs-volume,类型为emptyDir
    - name: logs-volume
    emptyDir: {}

    image.png
    应用并创建:

    “kubectl apply -f emptydir.yaml”

    image.png
    创建完成并查看状态:

    “kubectl get pods -n storage -o wide”

    image.png
    可以在dashboard里看到,pod中包含了两个服务,已经正常启动

    image.png
    访问一下服务,以便产生访问日志:

    “curl http://10.244.1.52”,地址是pod地址

    image.png
    可以看到,此时我是进入到pod中的busybox去看的访问日志,之前我去访问pod里的nginx服务,理应这个busybox是收不到这条日志,现在不仅收到了访问日志,还共享了nginx的日志文件,就可以证明效果已经实现,我这里是用的dashboard来执行操作,比较方便,通过命令行进入pod里去查看和操作也是一样的