From 6fab2cab4d0026ea01b4ce6a9d04b3816b4b1c00 Mon Sep 17 00:00:00 2001 From: dannc Date: Wed, 14 Dec 2022 10:31:43 +0700 Subject: [PATCH] homework 13.3: complete all tasks --- .../13-kubernates-config/13.3/readme.md | 172 +++++++++++++++++- 1 file changed, 169 insertions(+), 3 deletions(-) diff --git a/src/homework/13-kubernates-config/13.3/readme.md b/src/homework/13-kubernates-config/13.3/readme.md index 8d13610..e19f22d 100644 --- a/src/homework/13-kubernates-config/13.3/readme.md +++ b/src/homework/13-kubernates-config/13.3/readme.md @@ -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: + Volumes: +Conditions: + Type Status Reason + ---- ------ ------ + Progressing True NewReplicaSetAvailable + Available True MinimumReplicasAvailable +OldReplicaSets: +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: + Volumes: +Conditions: + Type Status Reason + ---- ------ ------ + Progressing True NewReplicaSetAvailable + Available True MinimumReplicasAvailable +OldReplicaSets: +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 +prod-app-backend-7fd6f4f558-7qvc4 1/1 Running 0 13m 10.233.102.131 node1 +prod-app-backend-7fd6f4f558-ctdwg 1/1 Running 0 3m12s 10.233.102.134 node1 +prod-app-frontend-69bcf947f8-mzdf6 1/1 Running 0 2m45s 10.233.102.136 node1 +prod-app-frontend-69bcf947f8-pzjk2 1/1 Running 0 2m45s 10.233.102.135 node1 +prod-app-frontend-69bcf947f8-xvdzc 1/1 Running 0 6m9s 10.233.102.132 node1 +prod-db-0 1/1 Running 0 14m 10.233.102.130 node1 +``` + +Все поды оказались на одной машине, так как сам кластер состоит только из одной рабочей ноды. + +Команды изменения количества реплик до 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 +prod-app-frontend-69bcf947f8-xvdzc 1/1 Running 0 8m27s 10.233.102.132 node1 +prod-db-0 1/1 Running 0 16m 10.233.102.130 node1 +```