k8s 5 Flashcards

1
Q

Што е Pesistent Volume?

A

A map to external storage asset.

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

Што е Persistent Volume Claim?

A

Тикет кој ги авторизира апликациите (капсулите) да користат некој persistent volume.

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

Што е Storage Class?

A

Систем кој ги автоматизира процедурите на storage-то

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

Што е container storage interface или provisioner?

A

Дозволува работа со storage,…

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

Што е storage provider?

A

Plugin во k8s. Менаџира со функционалностите на сториџот.
Отвора k8s функции преку CSI и менаџира со ресурсите.

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

За што служат класите на складови?

A

Начин на апстракција на различни видови складишта. Во манифестите на различни капсули се наведува името на класата на складиштето кое сакаме да го користиме.

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

Како изгледа манифестот на една класа на складиште?

A

kind: Storage class
metadata.name: <ime>
provisioner: <CSI></CSI></ime>

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

Дали на кластерот може да има повеќе класи на складишта?

A

Да.

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

Кои се чекорите до постигнување на конекција со складиште?

A

Најпрво треба да се направи класа на складиштето:
Kind: StorageClass
metadata.name: <name-sc>
provisioner: <CSI> (Configured by a cloud provider or on-premise)</CSI></name-sc>

Потоа се прави PVC објект кој го користат капсулите за поврзување со складиштето:
kind: PersistendVolumeClaim
metadata.name: <pvc-name>
spec.storageClassName: <name-sc></name-sc></pvc-name>

За крај секоја капсула која сака да се поврзи со складиштето:
spec.volumes.persistendVolumeClaim.claimName : <pvc-name></pvc-name>

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

Во кој објект се дефинира наччинот на пристап до складиштето?

A

Vo PVC објектот:
spec.accessModes: -<accessMode></accessMode>

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

Какви начини за пристап до едно складиште постојат?

A

ReadWriteOnce, ReadWriteMany, ReadOnlyMany

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

Дали кога се бриши PVC се бриши и PV

A

Во зависност од ReclaimPolicy на volume-от. Доколку е Delete се бриши, доколку е Retain се задржува, но не прима конекции од други PVC објекти.

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

Што е ConfigMap?

A

Објект кој доаѓа со k8s. Во него се чува конфигурација надвор од капсула. За време на извршување може да се вбризга, инјектира било каде.

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

Дали ConfigMap се користи за осетливи податоци?

A

Не.

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

Од што се содржи еден ConfigMap објект?

A

Од key-value парови.

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

Како може да се спои ConfigМаp со капсула?

A

Како променлива на околина, како аргумент во команда, или како датотека во меморија.

17
Q

Доколку сакаме да инјектираме мапа како променлива на околината, што треба да се направи?

A

Во манифестот на капсулата, специфично под env од некој контејнер:
spec.containers.env:
-name: <env_var_name>
valueFrom:
configMapKeyRef:
name: <map_name>
key: <required_key_name></required_key_name></map_name></env_var_name>

18
Q

Дали со промена на Config мапа, капсула која е веќе во работен тек ќе знае за промената?

A

Не. Таа капсула ќе знае само за старата вредност.

19
Q

На кој начин се инјектира конфигурациска мапа, како аргумент во команда за стартување на контејнер?

A

Вредноста на променливата се превзема на ист начин како и како променлива на околина:

spec.containers.env:
-name: <env_var_name>
valueFrom:
configMapKeyRef:
name: <map_name>
key: <required_key_name></required_key_name></map_name></env_var_name>

Но се користи во:

containers:
- name : <cnt1>
..
-command: ["echo var {<env-var_>}"]</env-var_></cnt1>

20
Q

Што се недостатоци на инјектирање на мапа како аргумент во команда?

A

Во суштина инјектирањето како аргумент е исто како и инјектирањето на променлива на околината, но само променливата се користи како аргумент при стартување на контејнер.

21
Q

Која е предноста на инјектирање на конфигурациска мапа како volume?

A

Промените во мапата се рефлектираат за време на работење на капсулата.

22
Q

На кој начин се енкриптирани тајните во k8s?

A

base64

23
Q

На колкава големина се ограничени тајните во k8s?

A

1MiB.

24
Q

Како се движи работниот тек на тајни?

A
  1. Тајната се создава и чува во кластер стор како не енкриптиран објект.
  2. Кога капсула која го користи е распоредена на некој јазел, тајната се испраќа неенкриптирана до јазелот.
  3. Кога ќе се стартува капсулата и контејнерите на јазелот, тајната се става во контејнерот и се декодира како обичен текст.
  4. Кога ќе се избриши капсулата, се бриши и тајната од јазелот.
25
Q

Која е промената кај капсулите за апликации кои чуваат состојба и апликации кои не чуваат состојба?

A

Кај оние кои не чуваат состојба има непредвидливи адреси, имиња на домаќини.
Додека оние кои чуваат треба да иамат предвидливи имиња, имиња на домаќин, како и volume bindings.

26
Q

По кое правило се додаваат нови реплики од StatefulSet?

A

По растечки редослед. Доколку последно креираната реплика е replica-3, а потребни се уште 2, се креираат replica-4 и replica-5

27
Q

По кое правило се бришат реплики од StatefulSet?

A

Од последно креираното, па надолу.

28
Q

Како се постигнува statefulness, а и self-healing?

A

Така што освен предиктивното именување на репликите, предиктивно се именуваат и нивните volumes. Кога ќе умре pod-3, тој се поврзува со vol-pod-3 кога е одново стартуван.

29
Q

Која е вредноста на .spec.clusterIP за да се креираат предиктивни DNS за секоја реплика на капсула?

A

None. Се користи haedless Service.