今天要来实作 Communicate Between Containers in the Same Pod Using a Shared Volume 这个任务
k8s 在一个 Pod 内可以跑多个 container
而一般来说 Pod 会有一个主要应用的 container , 其他则是辅助应用的 container
这些 container 可以透过挂载 Pod 内的同一个 Volume 来做沟通
这次这个任务就是要来实践上面所说
建立两个 Container , nginx 与 debian , 共同挂载同一个 Volume
debian 把资料写入 shared-data 内
nginx 再从 shared-data 把档案牍出来
1 建立一个包含两个 container 的 Pod
2 进入 nginx 的 container 验证可以从 shared-data 读出 debian 写入的档
3 清除布署
建立 two-container-pod.yaml 如下:
apiVersion: v1
kind: Pod
metadata:
name: two-containers
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: nginx-container
image: nginx
volumeMounts:
- name: shared-data
mountPath: /usr/share/nginx/html
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command: ["/bin/sh"]
args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
建立一个 Pod
名称设定为 two-containers
设定 volumes 名称为 shared-data
设定 container nginx-container 的 image 为 nginx
设定 container nginx-container 挂载 volume shared-data 到 /usr/share/nginx/html
设定 container debian 的 image 为 debian
设定 container debian 挂载 volume shared-data 到 /pod-data
设定 container debian 执行指令如下
/bin/sh -c "echo Hello from the debian container" > /pod-data/index.html
建立布署指令如下:
kubectl apply -f two-container-pod.yaml
检查布署指令如下:
kubectl get pod two-containers --output=yaml
进入 nginx-container 指令如下:
kubectl exec -it two-containers -c nginx-container -- /bin/bash
在 nginx-container terminal 执行指令如下:
apt-get update
apt-get install curl procps
ps aux
执行验证指令如下:
curl localhost
kubectl delete -f two-container-pod.yaml
这个范例任务中, 两个在同一个 Pod 的两个 container 透过 Pod 的 Volumes 来做沟通
然而, 假设 Pod 被删除并且重新建立, 任何建立在 Volume 内的资料都会消失
所以并非是个好方法, 沟通方式还是应该用透过 api 或是 message queue 的方式才比较即时
<<: [Day 28 - 小试身手] Todolist with React (3)
>>: Day-26 手把手的手写辨识模型 0x1:资料集整理
昨天提到,LIFF APP 有可能因为使用者没有绑定 email,或是不授权 email 使用导致无...
"我想不到要讲什麽。" --- RSA演算法 演算法的准备步骤有五个,更准确来说...
标准四则运算(中缀运算式)转尾缀运算式 9-3/3+(4+5)*2 尾缀运算式算出答案 ...
昨天的第三个按钮动态提案:文章传送门 使用了CSS动态的动态的主菜——Animation。 其实有很...
前言 今天要来介绍物件型别里面的基础物件,或许会想说那除了基础物件型别以外,不是还有 TypeScr...