Anda di halaman 1dari 12

Final Examination for D180

Soal 1. Docker Engine Components Flow

Gambar diatas mengilustrasikan komponen-komponen utama Docker, interaksi dan objects/resources yang
dikontrolnya. Berikan penjelasan anda tentang gambar di atas berdasarkan pemahaman anda dengan
menggunakan bahasa anda sendiri !

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 2. Docker Architecture

Gambar diatas mengilustrasikan interaksi antara Docker Client - Docker Host – Registry, tools, daemons dan
objects/resources yang dikontrolnya. Berikan penjelasan anda tentang gambar di atas berdasarkan
pemahaman anda dengan menggunakan bahasa anda sendiri !

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 3. Traditional App vs Docker Deployment

Presentasi diatas mengilustrasikan perbedaan antara deployment traditional package-based application


dengan containerized application. Berikan penjelasan anda tentang presentasi di atas berdasarkan
pemahaman anda dengan menggunakan bahasa anda sendiri !

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 4. Exploring Docker Image Layer in Local Cache Storage
Anda sedang mengeksplorasi apa yang terjadi di dalam Docker Local Cache Storage (/var/lib/docker)
ketika melakukan urutan kerja berikut:

1. Before Installing Docker


2. After Installing Docker but Docker Service was not yet started
3. After Starting Docker Service but before Pulling the httpd Image
4. After Pulling the httpd Image
5. After Running httpd Container
6. After Updating the httpd Container
7. After Stopping the httpd Container
8. After Committing Changes in httpd Container to Create a New Image

Pasangkan Nomor Urutan Kerja dengan Label Output dari beberapa perintah berikut !

Contoh:
1. Before Installing Docker: Output A

Output A

Output B

Output C
Output D

Output E

Output F

Output G

Output H
Soal 5. Troubleshooting Docker
Anda merasa yakin bahwa semua exited/stopped container sudah dihapuskan dengan perintah docker
container rm tetapi Anda mengalami masalah ketika mencoba menghapus 2 buah image seperti berikut:

# docker container ls -a

# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
furqanpr/mymariadb 10.4 e561ac14358b 19 hours ago 357MB
ubuntu bionic c3c304cb4f22 12 days ago
64.2MB

# docker image rm c3c304cb4f22


Error response from daemon: conflict: unable to delete c3c304cb4f22 (cannot be forced)
- image has dependent child images

# docker image rm e561ac14358b c3c304cb4f22


Error: No such image: e561ac14358b
Error response from daemon: conflict: unable to delete c3c304cb4f22 (cannot be forced)
- image has dependent child images

Apa kemungkinan solusi anda untuk menyelesaikan tersebut!


Soal 6. Understand Dockerfile
Berikut ini diperlihat Dockerfile untuk membuat MariaDB Image yang terdapat di Red Hat Container
Catalog.
(https://catalog.redhat.com/software/containers/detail/5ba0acf2d70cc57b0d1d9e78?container-
tabs=dockerfile)

Berikan penjalasan tentang instruksi-instruksi di dalam Dockerfile berikut!

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).

FROM ubi8/s2i-core:rhel8.2

ENV MYSQL_VERSION=10.3 \
APP_DATA=/opt/app-root/src \
HOME=/var/lib/mysql \
SUMMARY="MariaDB 10.3 SQL database server" \
DESCRIPTION="MariaDB is a multi-user, multi-threaded SQL database server”

LABEL summary="$SUMMARY" \
description="$DESCRIPTION" \
io.k8s.description="$DESCRIPTION" \
maintainer="SoftwareCollections.org <sclorg@redhat.com>"

EXPOSE 3306

RUN yum -y module enable mariadb:$MYSQL_VERSION && \


INSTALL_PKGS="policycoreutils rsync tar gettext hostname bind-utils groff-base
mariadb-server" && \
yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
yum -y clean all --enablerepo='*' && \
mkdir -p /var/lib/mysql/data && chown -R mysql.0 /var/lib/mysql && \
test "$(id mysql)" = "uid=27(mysql) gid=27(mysql) groups=27(mysql)"

ENV CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/mysql \
MYSQL_PREFIX=/usr

COPY 10.3/root-common /
COPY 10.3/s2i-common/bin/ $STI_SCRIPTS_PATH
COPY 10.3/root /

RUN rm -rf /etc/my.cnf.d/* && \


/usr/libexec/container-setup && \
rpm-file-permissions

USER 27

ENTRYPOINT ["container-entrypoint"]
CMD ["run-mysqld"]
Soal 7. Application Deployment Docker vs OpenShift

Presentasi diatas mengilustrasikan perbedaan antara deployment applikasi MariaDB dengan Docker di
stand-alone server dengan OpenShift di clustered server. Berikan penjelasan anda tentang presentasi ini !

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 8. Understand OpenShift S2I Process

Gambar diatas mengilustrasikan tahapan-tahapan (phases/steps) dan sumber daya (resources/objects)


yang dibuat selama proses build & deploy aplikasi dari source code di OpenShift yang disebut dengan S2I
Process. Berikan penjelasan anda tentang gambar di atas berdasarkan pemahaman anda dengan
menggunakan bahasa anda sendiri !

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 9. Understand OpenShift Resource’s Manifest File
Berikut ini diperlihatkan manifest file 2 resources berikut:
Service Route

- apiVersion: v1 - apiVersion: v1
kind: Service kind: Route
metadata: metadata:
annotations: annotations:
openshift.io/generated-by:… openshift.io/host.generated: "true"
creationTimestamp: null creationTimestamp: null
labels: labels:
app: mymariadb app: mymariadb
name: mymariadb name: mymariadb
spec: spec:
ports: host: mymariadb-docker-mariadb.router.default.svc.cluster.local
- name: 3306-tcp port:
port: 3306 targetPort: 3306-tcp
protocol: TCP to:
targetPort: 3306 kind: Service
selector: name: mymariadb
app: mymariadb weight: 100
deploymentconfig: mymariadb wildcardPolicy: None
sessionAffinity: None status:
type: ClusterIP ingress:
status: - conditions:
loadBalancer: {} - lastTransitionTime: "2020-05-07T23:57:55Z"
status: "True"
type: Admitted
host: mymariadb-docker-mariadb.router.default.svc.cluster.local
routerName: router
wildcardPolicy: None

Berikan penjelasan anda tentang kedua OpenShift Resources ini!

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 10. OpenShift Troubleshooting
Deployment 2 buah aplikasi anda mengalami kegagalan seperti berikut:

Application 1: HTTPD Deployment

$ oc new-app registry.access.redhat.com/rhscl/httpd-24-rhel7
$ oc get all

NAME DESIRED CURRENT READY AGE
rc/httpd-24-rhel7-1 1 1 0 54s

NAME READY STATUS RESTARTS AGE


po/httpd-24-rhel7-1-265bp 0/1 ImagePullBackOff 0 39s
po/httpd-24-rhel7-1-deploy 1/1 Running 0 40s

Pertanyaan:
1. Apa langkah pertama anda untuk melakukan troubleshooting kegagalan tersebut?
2. Apa kemungkinan penyebab kegagalan tersebut?
3. Apa kemungkinan solusi untuk kegagalan terserbut?

Application 2: Ruby Application Deployment

$ oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git
$ oc get all

NAME TYPE FROM STATUS STARTED
DURATION
builds/ruby-ex-1 Source Git Failed (FetchSourceFailed) 32 seconds ago 2s

NAME READY STATUS RESTARTS AGE


po/ruby-ex-1-build 0/1 Init:Error 0 32s

Pertanyaan:
1. Apa langkah pertama anda untuk melakukan troubleshooting kegagalan tersebut?
2. Apa kemungkinan penyebab kegagalan tersebut?
3. Apa kemungkinan solusi untuk kegagalan terserbut?

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).


Soal 11. Understand Multi-Container App Deployment in OpenShift
Buatlah Manifest File Template (.yaml file) untuk melakukan deployment aplikasi WordPress di OpenShift
dimana baik Wordpress dan MariaDB menggunakan Persistent Volume!

(Mohon tidak melakukan copy/paste terjemahan dari dokumen tertentu).

Anda mungkin juga menyukai