homework 13.3: complete all tasks

This commit is contained in:
2022-12-14 10:31:43 +07:00
parent 441969f862
commit 6fab2cab4d

View File

@@ -80,7 +80,54 @@ news=# \d
(2 rows)
```
// todo frontend and backend
Следующим шагом нужно пробросить порт `9000` непосредственно до пода `backend`. Для этого через команду `kubectl get pods`
необходимо найти название пода (оно уникальное, так как развёртывание было произведено при помощи объекта `Deployment`),
а затем выполнить непосредственно проброс порта:
```shell
kubectl port-forward pods/prod-app-backend-7fd6f4f558-7qvc4 9000:9000
```
```text
Forwarding from 127.0.0.1:9000 -> 9000
Forwarding from [::1]:9000 -> 9000
```
Для проверки необходимо выполнить curl-запрос к localhost в отдельной консольной сессии:
```shell
curl http://localhost:9000
```
```text
{"detail":"Not Found"}
```
Для обращения к frontend будет использован метод `exec` и выведено содержимое корневой директории со собранной статикой:
```shell
kubectl exec prod-app-frontend-69bcf947f8-xvdzc -- sh -c "ls -la /app/"
```
```text
total 420
drwxr-xr-x 1 root root 4096 Nov 30 03:33 .
drwxr-xr-x 1 root root 4096 Dec 14 03:22 ..
-rw-r--r-- 1 root root 38 Nov 30 03:33 .env
-rw-r--r-- 1 root root 30 Nov 29 03:49 .env.example
-rw-r--r-- 1 root root 390 Nov 30 02:59 Dockerfile
drwxr-xr-x 2 root root 4096 Nov 30 02:57 build
-rw-r--r-- 1 root root 344 Nov 29 03:49 demo.conf
-rw-r--r-- 1 root root 448 Nov 29 03:49 index.html
-rw-r--r-- 1 root root 344 Nov 29 03:49 item.html
drwxr-xr-x 2 root root 4096 Nov 30 02:57 js
-rw-r--r-- 1 root root 80 Nov 29 03:49 list.json
-rw-r--r-- 1 root root 364679 Nov 29 03:49 package-lock.json
-rw-r--r-- 1 root root 1107 Nov 29 03:49 package.json
drwxr-xr-x 2 root root 4096 Nov 30 02:57 static
drwxr-xr-x 3 root root 4096 Nov 30 02:57 styles
-rw-r--r-- 1 root root 2781 Nov 29 03:49 webpack.config.js
```
### Задание 2
@@ -88,6 +135,125 @@ news=# \d
>
> При работе с приложением иногда может потребоваться вручную добавить пару копий.
> Используя команду kubectl scale, попробуйте увеличить количество бекенда и фронта до 3.
> Проверьте, на каких нодах оказались копии после каждого действия (kubectl describe, kubectl get pods -o wide). После уменьшите количество копий до 1.
> Проверьте, на каких нодах оказались копии после каждого действия (kubectl describe, kubectl get pods -o wide).
> После уменьшите количество копий до 1.
// todo
Команды изменения количества реплик до 3-х:
```shell
kubectl scale --replicas=3 deployment/prod-app-backend
kubectl scale --replicas=3 deployment/prod-app-frontend
```
Проверка после выполнения:
```shell
kubectl describe deployments.apps prod-app-backend
```
```text
Name: prod-app-backend
Namespace: default
CreationTimestamp: Wed, 14 Dec 2022 10:14:32 +0700
Labels: app=prod-app
service=backend
Annotations: deployment.kubernetes.io/revision: 1
Selector: app=prod-app,service=backend
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=prod-app
service=backend
Containers:
netology-backend:
Image: dannecron/netology-devops-k8s-app:backend-latest
Port: 9000/TCP
Host Port: 0/TCP
Environment:
DATABASE_URL: postgresql://db_user:db_passwd@postgres:5432/news
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Progressing True NewReplicaSetAvailable
Available True MinimumReplicasAvailable
OldReplicaSets: <none>
NewReplicaSet: prod-app-backend-7fd6f4f558 (3/3 replicas created)
```
```shell
kubectl describe deployments.apps prod-app-frontend
```
```text
Name: prod-app-frontend
Namespace: default
CreationTimestamp: Wed, 14 Dec 2022 10:22:09 +0700
Labels: app=prod-app
service=frontend
Annotations: deployment.kubernetes.io/revision: 1
Selector: app=prod-app,service=frontend
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=prod-app
service=frontend
Containers:
netology-frontend:
Image: dannecron/netology-devops-k8s-app:frontend-latest
Port: 80/TCP
Host Port: 0/TCP
Environment:
BASE_URL: http://prod-backend:9000
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Progressing True NewReplicaSetAvailable
Available True MinimumReplicasAvailable
OldReplicaSets: <none>
NewReplicaSet: prod-app-frontend-69bcf947f8 (3/3 replicas created)
```
```shell
kubectl get pods -o wide
```
```text
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
prod-app-backend-7fd6f4f558-7p64m 1/1 Running 0 3m12s 10.233.102.133 node1 <none> <none>
prod-app-backend-7fd6f4f558-7qvc4 1/1 Running 0 13m 10.233.102.131 node1 <none> <none>
prod-app-backend-7fd6f4f558-ctdwg 1/1 Running 0 3m12s 10.233.102.134 node1 <none> <none>
prod-app-frontend-69bcf947f8-mzdf6 1/1 Running 0 2m45s 10.233.102.136 node1 <none> <none>
prod-app-frontend-69bcf947f8-pzjk2 1/1 Running 0 2m45s 10.233.102.135 node1 <none> <none>
prod-app-frontend-69bcf947f8-xvdzc 1/1 Running 0 6m9s 10.233.102.132 node1 <none> <none>
prod-db-0 1/1 Running 0 14m 10.233.102.130 node1 <none> <none>
```
Все поды оказались на одной машине, так как сам кластер состоит только из одной рабочей ноды.
Команды изменения количества реплик до 1-й:
```shell
kubectl scale --replicas=1 deployment/prod-app-backend
kubectl scale --replicas=1 deployment/prod-app-frontend
```
Проверка, что все изменения применились:
```shell
kubectl get pods -o wide
```
```text
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
prod-app-backend-7fd6f4f558-7qvc4 1/1 Running 0 16m 10.233.102.131 node1 <none> <none>
prod-app-frontend-69bcf947f8-xvdzc 1/1 Running 0 8m27s 10.233.102.132 node1 <none> <none>
prod-db-0 1/1 Running 0 16m 10.233.102.130 node1 <none> <none>
```