|
1 | | -## |
| 1 | +# Презентация по k8s: |
| 2 | + |
| 3 | +1. ### Что такое k8s и зачем он нужен организациям? |
| 4 | + |
| 5 | +Kubernetes - это открытая система для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями. |
| 6 | + |
| 7 | +Чтобы понять, для чего хорошо использовать Kubernetes, рассмотрим некоторые примеры: |
| 8 | + |
| 9 | +Вы хотите запустить определенное приложение в контейнере на нескольких различных местах. Конечно, если у вас есть 2-3 сервера/места, вы можете справиться самостоятельно, но возможностей масштабирования на дополнительные места может быть недостаточно. |
| 10 | + |
| 11 | +Выполнение обновлений и изменений для сотен контейнеров. |
| 12 | + |
| 13 | +Обработка случаев, когда текущая нагрузка требует масштабирования (вверх или вниз). |
| 14 | + |
| 15 | +2. ### Архитектура k8s кластера: |
| 16 | + |
| 17 | +Кластер\ |
| 18 | +Мастер-узел\ |
| 19 | +API-сервер\ |
| 20 | +Эталонное хранилище и конечная точка |
| 21 | + |
| 22 | +### Контроллеры: |
| 23 | +Контроллер планирования\ |
| 24 | +Контроллер репликации\ |
| 25 | +Контроллер управления конечной точкой\ |
| 26 | +Контроллер управления настроек конфигурации\ |
| 27 | +Рабочие узлы |
| 28 | + |
| 29 | +### Узловые службы: |
| 30 | +Сетевая служба\ |
| 31 | +Proxy-сервер\ |
| 32 | +Планировщик подов\ |
| 33 | +Kubelet (агент Kubernetes)\ |
| 34 | +Kube-proxy (для обеспечения сетевой связности) |
| 35 | + |
| 36 | +3. ### Что такое k8s кластер? |
| 37 | + |
| 38 | +Кластер состоит из Мастера (который координирует работу кластера) и Узлов, на которых запускаются приложения. |
| 39 | + |
| 40 | +4. ### Пример команды для создания развёртывания: |
| 41 | +``` |
| 42 | +kubectl create deployment kubernetes-httpd --image=httpd |
| 43 | +``` |
| 44 | +Команда создает развертывание (deployment) с именем "kubernetes-httpd" и использует образ "httpd". |
| 45 | + |
| 46 | +`kubectl`: утилита командной строки Kubernetes.\ |
| 47 | +`create deployment`: команда для создания развертывания.\ |
| 48 | +`kubernetes-httpd`: это имя, которое вы выбираете для вашего развертывания. Вы можете выбрать любое уникальное имя для своего развертывания.\ |
| 49 | +`--image=httpd`: опция указывает образ, который будет использоваться для создания контейнера в вашем развертывании. В данном случае, указывается образ httpd, который является веб-сервером Apache HTTP Server. |
| 50 | + |
| 51 | +Таким образом, команда создает развертывание с именем "kubernetes-httpd", которое будет запускать контейнер на основе образа "httpd". |
| 52 | + |
| 53 | +5. ### За что отвечает master? |
| 54 | + |
| 55 | +Мастер координирует все рабочие процессы в кластере: |
| 56 | + |
| 57 | +Планирование приложений\ |
| 58 | +Управление желаемым состоянием\ |
| 59 | +Развертывание обновлений |
| 60 | + |
| 61 | +6. ### Как проверить состояние и работу мастера в k8s? |
| 62 | + |
| 63 | +Проверить, что мастер-компоненты запущены и работают:\ |
| 64 | +`kubectl get componentstatuses`\ |
| 65 | +Проверить состояние узлов в кластере:\ |
| 66 | +`kubectl get nodes`\ |
| 67 | +Проверить состояние развертываний и подов:\ |
| 68 | +`kubectl get deployments`\ |
| 69 | +`kubectl get pods`\ |
| 70 | +Создание развертывания (deployment) с именем "my-deployment" и 3 репликами:\ |
| 71 | +`kubectl create deployment my-deployment --image=my-image --replicas=3`\ |
| 72 | +Масштабирование развертывания до 5 реплик:\ |
| 73 | +`kubectl scale deployment my-deployment --replicas=5`\ |
| 74 | +Обновление образа для развертывания:\ |
| 75 | +`kubectl set image deployment/my-deployment my-container=my-new-image`\ |
| 76 | +Просмотр логов пода:\ |
| 77 | +`kubectl logs my-pod` |
| 78 | + |
| 79 | +7. ### Компоненты k8s: |
| 80 | + |
| 81 | +`kubectl` - это утилита командной строки для работы с Kubernetes API-сервером, который является основной частью мастера Kubernetes. |
| 82 | + |
| 83 | +`scheduler`, `controller-manager` и `etcd-0` - это компоненты мастера Kubernetes: |
| 84 | + |
| 85 | +`scheduler` отвечает за планирование (размещение) подов на доступные узлы в кластере в соответствии с заданными требованиями и ограничениями.\ |
| 86 | +`controller-manager` управляет различными контроллерами, которые обеспечивают желаемое состояние кластера (например, контроллер репликации, контроллер конечной точки и другие).\ |
| 87 | +`etcd` представляет собой распределенное хранилище, используемое для сохранения и синхронизации состояния кластера Kubernetes. |
| 88 | + |
| 89 | +``` |
| 90 | +docker exec -it minikube /bin/sh |
| 91 | +docker ps |
| 92 | + |
| 93 | +e6b6aad92a6d 115053965e86 "/metrics-sidecar" Up 3 days k8s_dashboard-metrics-scraper |
| 94 | +5849db300377 deb04688c4a3 "kube-apiserver --ad…" Up 3 days k8s_kube-apiserver |
| 95 | +3c8f7d15de97 46a6bb3c77ce "/usr/local/bin/kube…" Up 3 days k8s_kube-proxy |
| 96 | +1ad890efd424 e9c08e11b07f "kube-controller-man…" Up 3 days k8s_kube-controller-manager |
| 97 | +01f9cb94c715 fce326961ae2 "etcd --advertise-cl…" Up 3 days k8s_etcd_etcd |
| 98 | +b10bfdb5744d 655493523f60 "kube-scheduler --au…" Up 3 days k8s_kube-scheduler |
| 99 | +862a594e1b92 registry.k8s.io/pause:3.6 "/pause" Up 3 days k8s_POD_coredns |
| 100 | +``` |
| 101 | +Выведенные контейнеры через docker ps внутри оболочки minikube, представляют компоненты мастера Kubernetes. У каждого компонента есть свой уникальный идентификатор контейнера (например, k8s_kube-apiserver, k8s_kube-controller-manager, k8s_etcd_etcd и т. д.). Они представляют основные сервисы, которые работают на мастер-узле и обеспечивают функционирование кластера Kubernetes. |
| 102 | + |
| 103 | +Таким образом, перечисленные контейнеры являются компонентами мастера Kubernetes, которые управляют планированием, управлением и хранением состояния кластера. |
0 commit comments