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
bccb615
Update README.md
scorpelord Jan 18, 2026
1e6bc2c
Update README.md
scorpelord Jan 18, 2026
70c4259
Update README.md
scorpelord Jan 18, 2026
f3acc4f
Update README.md
scorpelord Jan 18, 2026
05b6992
Create configmap-web.yaml
scorpelord Jan 18, 2026
2f975a5
Create deployment.yaml
scorpelord Jan 18, 2026
3dd14e1
Create secret-tls.yaml
scorpelord Jan 18, 2026
c15e948
Create ingress-tls.yaml
scorpelord Jan 18, 2026
fc3ce03
Create role-pod-reader.yaml
scorpelord Jan 18, 2026
ed554d2
Create rolebinding-developer.yaml
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
124 changes: 26 additions & 98 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,45 @@
# Домашнее задание к занятию "`Название занятия`" - `Фамилия и имя студента`


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

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)
# Домашнее задание к занятию "Настройка приложений и управление доступом в Kubernetes" - `Молоствов Андрей`

---

### Задание 1

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

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

```
Поле для вставки кода...
....
....
....
....
nano configmap-web.yaml
nano deployment.yaml
kubectl apply -f configmap-web.yaml
kubectl apply -f deployment.yaml
kubectl port-forward service/web-app 8080:80
```
<img width="1276" height="434" alt="image" src="https://github.com/user-attachments/assets/c90fcdff-ae9d-45cf-84c8-7dc63123a117" />

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


---

### Задание 2

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

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

```
Поле для вставки кода...
....
....
....
....
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout tls.key -out tls.crt -subj "/CN=myapp.example.com"
nano secret-tls.yaml
minikube addons enable ingress
nano ingress-tls.yaml
kubectl apply -f ingress-tls.yaml
kubectl port-forward -n ingress-nginx service/ingress-nginx-controller 8443:443
curl -k https://localhost:8443 -H "Host: myapp.example.com"
```
<img width="1034" height="135" alt="image" src="https://github.com/user-attachments/assets/0d9493a1-0402-44a8-9b0f-da9daba5c9f2" />

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


---
<img width="648" height="212" alt="image" src="https://github.com/user-attachments/assets/605cf718-5db3-4d80-b9fd-e5a67f95ec80" />

### Задание 3

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

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

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

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

### Задание 4

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

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

```
Поле для вставки кода...
....
....
....
....
openssl genrsa -out developer.key 2048
openssl req -new -key developer.key -out developer.csr -subj "/CN=developer"
minikube ssh "sudo cat /var/lib/minikube/certs/ca.crt" > ca.crt
minikube ssh "sudo cat /var/lib/minikube/certs/ca.key" > ca.key
openssl x509 -req -in developer.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out developer.crt -days 365
nano role-pod-reader.yaml
nano rolebinding-developer.yaml
kubectl apply -f role-pod-reader.yaml
kubectl apply -f rolebinding-developer.yaml
```

`При необходимости прикрепитe сюда скриншоты
![Название скриншота](ссылка на скриншот)`
<img width="664" height="272" alt="image" src="https://github.com/user-attachments/assets/0df6f938-0df5-4ae4-8b7b-ee245bf8359b" />
26 changes: 26 additions & 0 deletions configmap-web.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: web-content
data:
index.html: |
<!DOCTYPE html>
<html>
<head>
<title>ConfigMap Demo</title>
</head>
<body>
<h1>Hello from ConfigMap!</h1>
<p>This page is served from ConfigMap</p>
</body>
</html>
nginx-config.conf: |
server {
listen 80;
root /usr/share/nginx/html;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}
40 changes: 40 additions & 0 deletions deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 1
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
volumeMounts:
- name: html-content
mountPath: /usr/share/nginx/html
- name: nginx-config
mountPath: /etc/nginx/conf.d
- name: multitool
image: wbitt/network-multitool:alpine-extra
command: ["sleep", "infinity"]
volumes:
- name: html-content
configMap:
name: web-content
items:
- key: index.html
path: index.html
- name: nginx-config
configMap:
name: web-content
items:
- key: nginx-config.conf
path: default.conf
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.
20 changes: 20 additions & 0 deletions ingress-tls.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tls-ingress
spec:
tls:
- hosts:
- myapp.example.com
secretName: tls-secret
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-app
port:
number: 80
9 changes: 9 additions & 0 deletions role-pod-reader.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-viewer
namespace: default
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list", "watch"]
13 changes: 13 additions & 0 deletions rolebinding-developer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: developer-binding
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-viewer
subjects:
- kind: User
name: developer
apiGroup: rbac.authorization.k8s.io
8 changes: 8 additions & 0 deletions secret-tls.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: tls-secret
type: kubernetes.io/tls
data:
tls.crt: $(cat tls.crt | base64 | tr -d '\n')
tls.key: $(cat tls.key | base64 | tr -d '\n')