CKAD экзамен: Практическое упражнение (8 части серии)
Практические вопросы на основе этих концепций
- Понимать мульти-контейнеровочные модели дизайна POD (например, посол, адаптер, соленье)
Вопросов
Создайте стручок с тремя контейнерами Box с командами «Ls; Sleep 3600;», «Echo Hello World; Sleep 3600;» и «эхо это третий контейнер; сон 3600» соответственно и проверьте статус
// first create single container pod with dry run flag kubectl run busybox --image=busybox --restart=Never --dry-run -o yaml -- bin/sh -c "sleep 3600; ls" > multi-container.yaml // edit the pod like below apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: busybox name: busybox spec: containers: - args: - bin/sh - -c - ls; sleep 3600 image: busybox name: busybox1 resources: {} - args: - bin/sh - -c - echo Hello world; sleep 3600 image: busybox name: busybox2 resources: {} - args: - bin/sh - -c - echo this is third container; sleep 3600 image: busybox name: busybox3 resources: {} dnsPolicy: ClusterFirst restartPolicy: Never status: {} // create it kubectl create -f multi-container.yaml kubectl get po busybox
Проверьте журналы каждого контейнера, который вы только что создали
kubectl logs busybox -c busybox1 kubectl logs busybox -c busybox2 kubectl logs busybox -c busybox3
Проверьте предыдущие журналы второго контейнера Businox2, если
kubectl logs busybox -c busybox2 --previous
Запустить команду ls в третьем контейнере busybox3 вышеперечисленного стручка
kubectl exec busybox -c busybox3 -- ls
Показать метрики вышеупомянутых контейнеров POD и помещает их в файл .Log и проверить
kubectl top pod busybox --containers // putting them into file kubectl top pod busybox --containers > file.log cat file.log
Создайте POD с основным контейнером Busybox и который выполняет это «пока правда; Do Echo» Привет, я из главного контейнера ‘>>/var/log/index.html; Спать 5; Готово «и с контейнером Sidecar с изображением Nginx, который подвергает порта 80. Используйте VolumeDIR Volume и установите этот объем на пути/var/log для busybox и на пути/usr/share/nginx/html для контейнера nginx. Убедитесь, что оба контейнера работают.
// create an initial yaml file with this kubectl run multi-cont-pod --image=busbox --restart=Never --dry-run -o yaml > multi-container.yaml // edit the yml as below and create it apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: multi-cont-pod name: multi-cont-pod spec: volumes: - name: var-logs emptyDir: {} containers: - image: busybox command: ["/bin/sh"] args: ["-c", "while true; do echo 'Hi I am from Main container' >> /var/log/index.html; sleep 5;done"] name: main-container resources: {} volumeMounts: - name: var-logs mountPath: /var/log - image: nginx name: sidecar-container resources: {} ports: - containerPort: 80 volumeMounts: - name: var-logs mountPath: /usr/share/nginx/html dnsPolicy: ClusterFirst restartPolicy: Never status: {} kubectl create -f multi-container.yaml kubectl get po multi-cont-pod
EXEC в обоих контейнерах и проверить, что Main.txt существует и запрашивает Main.txt из контейнера Sidecar с Curl localhost
// exec into main container kubectl exec -it multi-cont-pod -c main-container -- sh cat /var/log/main.txt // exec into sidecar container kubectl exec -it multi-cont-pod -c sidecar-container -- sh cat /usr/share/nginx/html/index.html // install curl and get default page kubectl exec -it multi-cont-pod -c sidecar-container -- sh # apt-get update && apt-get install -y curl # curl localhost
CKAD экзамен: Практическое упражнение (8 части серии)
Оригинал: «https://dev.to/vijaydaswani/ckad-exam-practice-exercise-multi-container-pods-1ffi»