Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
6c78aad
Update README.md
scorpelord Mar 18, 2025
4838b0a
Add files via upload
scorpelord Mar 18, 2025
93442cf
Add files via upload
scorpelord Mar 18, 2025
899215b
Add files via upload
scorpelord Mar 18, 2025
8384fcc
Add files via upload
scorpelord Mar 18, 2025
9286e36
Update README.md
scorpelord Mar 18, 2025
92c83cc
Update README.md
scorpelord Mar 18, 2025
278644f
Update README.md
scorpelord Mar 18, 2025
f4b981c
Update README.md
scorpelord Mar 18, 2025
7cffcd2
Update README.md
scorpelord Mar 18, 2025
ac242cb
Update README.md
scorpelord Mar 18, 2025
f93048e
Update README.md
scorpelord Mar 18, 2025
a079fc6
Update README.md
scorpelord Mar 19, 2025
e794bcd
Update README.md
scorpelord Mar 19, 2025
5621ce2
Update README.md
scorpelord Mar 23, 2025
26b4a79
Update README.md
scorpelord Mar 23, 2025
19fb7ee
Update README.md
scorpelord Mar 23, 2025
3a784a4
Система мониторинга Zabbix. Часть 2
scorpelord Mar 23, 2025
74b1c6d
Delete Система мониторинга Zabbix. Часть 2
scorpelord Mar 23, 2025
e03d08e
Update README.md
scorpelord Jan 18, 2026
bda0b31
Update README.md
scorpelord Jan 18, 2026
ec048fe
Update README.md
scorpelord Jan 18, 2026
b0fedf3
Update README.md
scorpelord Jan 18, 2026
43a7675
Update README.md
scorpelord Jan 18, 2026
334ed8a
Update README.md
scorpelord Jan 18, 2026
2eeba0f
Create containers-data-exchange.yaml
scorpelord Jan 18, 2026
ef3e3ce
Create simple-pv-pvc.yaml
scorpelord Jan 18, 2026
cd31caf
Create sc.yaml
scorpelord Jan 18, 2026
94f4bf2
Update README.md
scorpelord Jan 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 35 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,56 @@
# Домашнее задание к занятию "`Название занятия`" - `Фамилия и имя студента`
# Домашнее задание к занятию "Хранение в K8s" - `Молоствов Андрей`


### Инструкция по выполнению домашнего задания

1. Сделайте `fork` данного репозитория к себе в Github и переименуйте его по названию или номеру занятия, например, https://github.com/имя-вашего-репозитория/git-hw или https://github.com/имя-вашего-репозитория/7-1-ansible-hw).
2. Выполните клонирование данного репозитория к себе на ПК с помощью команды `git clone`.
3. Выполните домашнее задание и заполните у себя локально этот файл README.md:
- впишите вверху название занятия и вашу фамилию и имя
- в каждом задании добавьте решение в требуемом виде (текст/код/скриншоты/ссылка)
- для корректного добавления скриншотов воспользуйтесь [инструкцией "Как вставить скриншот в шаблон с решением](https://github.com/netology-code/sys-pattern-homework/blob/main/screen-instruction.md)
- при оформлении используйте возможности языка разметки md (коротко об этом можно посмотреть в [инструкции по MarkDown](https://github.com/netology-code/sys-pattern-homework/blob/main/md-instruction.md))
4. После завершения работы над домашним заданием сделайте коммит (`git commit -m "comment"`) и отправьте его на Github (`git push origin`);
5. Для проверки домашнего задания преподавателем в личном кабинете прикрепите и отправьте ссылку на решение в виде md-файла в вашем Github.
6. Любые вопросы по выполнению заданий спрашивайте в чате учебной группы и/или в разделе “Вопросы по заданию” в личном кабинете.

Желаем успехов в выполнении домашнего задания!

### Дополнительные материалы, которые могут быть полезны для выполнения задания

1. [Руководство по оформлению Markdown файлов](https://gist.github.com/Jekins/2bf2d0638163f1294637#Code)

---

### Задание 1

`Приведите ответ в свободной форме........`

1. `Заполните здесь этапы выполнения, если требуется ....`
2. `Заполните здесь этапы выполнения, если требуется ....`
3. `Заполните здесь этапы выполнения, если требуется ....`
4. `Заполните здесь этапы выполнения, если требуется ....`
5. `Заполните здесь этапы выполнения, если требуется ....`
6.

```
Поле для вставки кода...
....
....
....
....
mkdir -p k8s-storage-tasks
cd k8s-storage-tasks
nano containers-data-exchange.yaml
kubectl apply -f containers-data-exchange.yaml
kubectl describe pod -l app=data-exchange
kubectl logs -l app=data-exchange -c multitool --tail=5
kubectl get pv
kubectl describe pv local-pv
```
<img width="1057" height="573" alt="image" src="https://github.com/user-attachments/assets/a949e91a-e55f-4fcb-87b4-ef25cf7a6273" />

`При необходимости прикрепитe сюда скриншоты
![Название скриншота 1](ссылка на скриншот 1)`


---
<img width="853" height="118" alt="image" src="https://github.com/user-attachments/assets/22be1568-3c0b-4adf-bc58-caaad9162151" />

### Задание 2

`Приведите ответ в свободной форме........`

1. `Заполните здесь этапы выполнения, если требуется ....`
2. `Заполните здесь этапы выполнения, если требуется ....`
3. `Заполните здесь этапы выполнения, если требуется ....`
4. `Заполните здесь этапы выполнения, если требуется ....`
5. `Заполните здесь этапы выполнения, если требуется ....`
6.

```
Поле для вставки кода...
....
....
....
....
```

`При необходимости прикрепитe сюда скриншоты
![Название скриншота 2](ссылка на скриншот 2)`


---
local-pv - созданный вручную, статус Available
pvc-dcd0e528... - автоматически созданный, статус Bound к PVC

### Задание 3
PVC привязался не к local-pv, а к автоматически созданному PV потому что:

`Приведите ответ в свободной форме........`
1)У автоматического PV storageClassName: standard (дефолтный)

1. `Заполните здесь этапы выполнения, если требуется ....`
2. `Заполните здесь этапы выполнения, если требуется ....`
3. `Заполните здесь этапы выполнения, если требуется ....`
4. `Заполните здесь этапы выполнения, если требуется ....`
5. `Заполните здесь этапы выполнения, если требуется ....`
6.
2)У PV не указан storageClassName

3)PVC ищет подходящий PV, нашел стандартный и привязался к нему
```
Поле для вставки кода...
....
....
....
....
nano simple-pv-pvc.yaml
kubectl apply -f simple-pv-pvc.yaml --validate=false
kubectl get pv,pvc,pods -l app=data-exchange-pvc
kubectl logs -l app=data-exchange-pvc -c multitool --tail=3
kubectl delete deployment data-exchange-pvc
kubectl get pv
kubectl describe pv local-pv
```
<img width="982" height="121" alt="image" src="https://github.com/user-attachments/assets/4bd72e15-2481-47e7-96f1-45c820b877a7" />

`При необходимости прикрепитe сюда скриншоты
![Название скриншота](ссылка на скриншот)`

### Задание 4

`Приведите ответ в свободной форме........`
<img width="842" height="158" alt="image" src="https://github.com/user-attachments/assets/1b756821-eaa1-45c1-9b92-eb446b49ec94" />

1. `Заполните здесь этапы выполнения, если требуется ....`
2. `Заполните здесь этапы выполнения, если требуется ....`
3. `Заполните здесь этапы выполнения, если требуется ....`
4. `Заполните здесь этапы выполнения, если требуется ....`
5. `Заполните здесь этапы выполнения, если требуется ....`
6.
<img width="1032" height="489" alt="image" src="https://github.com/user-attachments/assets/dd4bb117-d345-485e-a236-8b28aff0dabb" />

### Задание 3
```
Поле для вставки кода...
....
....
....
....
nano sc.yaml
minikube ssh "sudo mkdir -p /mnt/sc-data && sudo chmod 777 /mnt/sc-data"
kubectl apply -f sc.yaml
sleep 15
kubectl get sc,pv,pvc,pods -l app=data-exchange-sc
kubectl logs -l app=data-exchange-sc -c multitool --tail=3
```

`При необходимости прикрепитe сюда скриншоты
![Название скриншота](ссылка на скриншот)`
<img width="968" height="283" alt="image" src="https://github.com/user-attachments/assets/cab449f9-e251-4c41-8bbc-a9b436168922" />
32 changes: 32 additions & 0 deletions containers-data-exchange.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-exchange
spec:
replicas: 1
selector:
matchLabels:
app: data-exchange
template:
metadata:
labels:
app: data-exchange
spec:
containers:
- name: busybox
image: busybox
command: ["/bin/sh", "-c"]
args: ["while true; do echo $(date) >> /shared/data.log; sleep 5; done"]
volumeMounts:
- name: shared-volume
mountPath: /shared
- name: multitool
image: wbitt/network-multitool
command: ["/bin/sh", "-c"]
args: ["tail -f /shared/data.log"]
volumeMounts:
- name: shared-volume
mountPath: /shared
volumes:
- name: shared-volume
emptyDir: {}
Binary file added img/1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 69 additions & 0 deletions sc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-sc-pv
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-sc
hostPath:
path: /mnt/sc-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-sc-pvc
spec:
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 512Mi
storageClassName: local-sc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-exchange-sc
spec:
replicas: 1
selector:
matchLabels:
app: data-exchange-sc
template:
metadata:
labels:
app: data-exchange-sc
spec:
containers:
- name: busybox
image: busybox
command: ["/bin/sh", "-c"]
args: ["while true; do echo $(date) >> /storage/data.log; sleep 5; done"]
volumeMounts:
- name: sc-volume
mountPath: /storage
- name: multitool
image: wbitt/network-multitool
command: ["/bin/sh", "-c"]
args: ["tail -f /storage/data.log"]
volumeMounts:
- name: sc-volume
mountPath: /storage
volumes:
- name: sc-volume
persistentVolumeClaim:
claimName: local-sc-pvc
59 changes: 59 additions & 0 deletions simple-pv-pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: /mnt/k8s-data
type: DirectoryOrCreate
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 512Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-exchange-pvc
spec:
replicas: 1
selector:
matchLabels:
app: data-exchange-pvc
template:
metadata:
labels:
app: data-exchange-pvc
spec:
containers:
- name: busybox
image: busybox
command: ["sh", "-c"]
args: ["while true; do echo 'PV test: $(date)' >> /mnt/shared.log; sleep 5; done"]
volumeMounts:
- name: mypvc
mountPath: /mnt
- name: multitool
image: busybox
command: ["sh", "-c"]
args: ["tail -f /mnt/shared.log"]
volumeMounts:
- name: mypvc
mountPath: /mnt
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: local-pvc