创建一个新的目录,用作将来创建所需新的资源的配置清单目录:
“mkdir /opt/kubernetes-resources”
随后创建新的namespaces资源清单:
“vim namespaces-storage”
apiVersion: v1
kind: Namespace
metadata:
name: storage
labels:
name: storage
应用并创建资源:
“kubectl apply -f namespaces-storage”
用dashboard查看,创建成功,用命令行也行
新建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: {}
应用并创建:
“kubectl apply -f emptydir.yaml”
创建完成并查看状态:
“kubectl get pods -n storage -o wide”
可以在dashboard里看到,pod中包含了两个服务,已经正常启动
访问一下服务,以便产生访问日志:
“curl http://10.244.1.52”,地址是pod地址
可以看到,此时我是进入到pod中的busybox去看的访问日志,之前我去访问pod里的nginx服务,理应这个busybox是收不到这条日志,现在不仅收到了访问日志,还共享了nginx的日志文件,就可以证明效果已经实现,我这里是用的dashboard来执行操作,比较方便,通过命令行进入pod里去查看和操作也是一样的