2 - Multi Container Pods Flashcards

1
Q

Create a pod with an nginx container exposed on port 80. Add a busybox init container which downloads a page using “wget -O /work-dir/index.html http://neverssl.com/online”. Make a volume of type emptyDir and mount it in both containers. For the nginx container, mount it on “/usr/share/nginx/html” and for the initcontainer, mount it on “/work-dir”. When done, get the IP of the created pod and create a busybox pod and run “wget -O- IP”

A

kubectl run box –image=nginx –restart=Never –port=80 –dry-run=client -o yaml > pod-init.yaml

apiVersion: v1
kind: Pod
metadata:
labels:
run: box
name: box
spec:
initContainers:
- args:
- /bin/sh
- -c
- “wget -O /work-dir/index.html http://neverssl.com/online”
image: busybox
name: box
volumeMounts:
- name: vol
mountPath: /work-dir
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
volumeMounts:
- name: vol
mountPath: /usr/share/nginx/html
volumes:
- name: vol
emptyDir: {}

Apply pod
kubectl apply -f pod-init.yaml

Get IP
kubectl get po -o wide

Execute wget
kubectl run box-test –image=busybox –restart=Never -it –rm – /bin/sh -c “wget -O- $(kubectl get pod box -o jsonpath=’{.status.podIP}’)”

you can do some cleanup
kubectl delete po box

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Create a Pod with two containers, both with image busybox and command “echo hello; sleep 3600”. Connect to the second container and run ‘ls’

A

kubectl run busybox –image=busybox –restart=Never -o yaml –dry-run=client – /bin/sh -c ‘echo hello;sleep 3600’ > pod.yaml
vi pod.yaml

containers:
- args:
- /bin/sh
- -c
- echo hello;sleep 3600
image: busybox
imagePullPolicy: IfNotPresent
name: busybox
resources: {}
- args:
- /bin/sh
- -c
- echo hello;sleep 3600
image: busybox
name: busybox2

kubectl create -f pod.yaml
# Connect to the busybox2 container within the pod
kubectl exec -it busybox -c busybox2 – /bin/sh
ls
exit

or you can do the above with just an one-liner
kubectl exec -it busybox -c busybox2 – ls

you can do some cleanup
kubectl delete po busybox

How well did you know this?
1
Not at all
2
3
4
5
Perfectly