Skip to content

Commit 16eace9

Browse files
readme update 2
1 parent 0fb3583 commit 16eace9

File tree

1 file changed

+103
-1
lines changed

1 file changed

+103
-1
lines changed

README.md

Lines changed: 103 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,103 @@
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

Comments
 (0)