Skip to content

JavaScriptonit/k8s_presentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Презентация по k8s:

  1. Что такое k8s и зачем он нужен организациям?

Kubernetes - это открытая система для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями.

Чтобы понять, для чего хорошо использовать Kubernetes, рассмотрим некоторые примеры:

Вы хотите запустить определенное приложение в контейнере на нескольких различных местах. Конечно, если у вас есть 2-3 сервера/места, вы можете справиться самостоятельно, но возможностей масштабирования на дополнительные места может быть недостаточно.

Выполнение обновлений и изменений для сотен контейнеров.

Обработка случаев, когда текущая нагрузка требует масштабирования (вверх или вниз).

  1. Архитектура k8s кластера:

Кластер
Мастер-узел
API-сервер
Эталонное хранилище и конечная точка

Контроллеры:

Контроллер планирования
Контроллер репликации
Контроллер управления конечной точкой
Контроллер управления настроек конфигурации
Рабочие узлы

Узловые службы:

Сетевая служба
Proxy-сервер
Планировщик подов
Kubelet (агент Kubernetes)
Kube-proxy (для обеспечения сетевой связности)

  1. Что такое k8s кластер?

Кластер состоит из Мастера (который координирует работу кластера) и Узлов, на которых запускаются приложения.

  1. Пример команды для создания развёртывания:

kubectl create deployment kubernetes-httpd --image=httpd 

Команда создает развертывание (deployment) с именем "kubernetes-httpd" и использует образ "httpd".

kubectl: утилита командной строки Kubernetes.
create deployment: команда для создания развертывания.
kubernetes-httpd: это имя, которое вы выбираете для вашего развертывания. Вы можете выбрать любое уникальное имя для своего развертывания.
--image=httpd: опция указывает образ, который будет использоваться для создания контейнера в вашем развертывании. В данном случае, указывается образ httpd, который является веб-сервером Apache HTTP Server.

Таким образом, команда создает развертывание с именем "kubernetes-httpd", которое будет запускать контейнер на основе образа "httpd".

  1. За что отвечает master?

Мастер координирует все рабочие процессы в кластере:

Планирование приложений
Управление желаемым состоянием
Развертывание обновлений

  1. Как проверить состояние и работу мастера в k8s?

Проверить, что мастер-компоненты запущены и работают:
kubectl get componentstatuses
Проверить состояние узлов в кластере:
kubectl get nodes
Проверить состояние развертываний и подов:
kubectl get deployments
kubectl get pods
Создание развертывания (deployment) с именем "my-deployment" и 3 репликами:
kubectl create deployment my-deployment --image=my-image --replicas=3
Масштабирование развертывания до 5 реплик:
kubectl scale deployment my-deployment --replicas=5
Обновление образа для развертывания:
kubectl set image deployment/my-deployment my-container=my-new-image
Просмотр логов пода:
kubectl logs my-pod

  1. Компоненты k8s:

kubectl - это утилита командной строки для работы с Kubernetes API-сервером, который является основной частью мастера Kubernetes.

scheduler, controller-manager и etcd-0 - это компоненты мастера Kubernetes:

scheduler отвечает за планирование (размещение) подов на доступные узлы в кластере в соответствии с заданными требованиями и ограничениями.
controller-manager управляет различными контроллерами, которые обеспечивают желаемое состояние кластера (например, контроллер репликации, контроллер конечной точки и другие).
etcd представляет собой распределенное хранилище, используемое для сохранения и синхронизации состояния кластера Kubernetes.

docker exec -it minikube /bin/sh docker ps e6b6aad92a6d 115053965e86 "/metrics-sidecar" Up 3 days k8s_dashboard-metrics-scraper 5849db300377 deb04688c4a3 "kube-apiserver --ad…" Up 3 days k8s_kube-apiserver 3c8f7d15de97 46a6bb3c77ce "/usr/local/bin/kube…" Up 3 days k8s_kube-proxy 1ad890efd424 e9c08e11b07f "kube-controller-man…" Up 3 days k8s_kube-controller-manager 01f9cb94c715 fce326961ae2 "etcd --advertise-cl…" Up 3 days k8s_etcd_etcd b10bfdb5744d 655493523f60 "kube-scheduler --au…" Up 3 days k8s_kube-scheduler 862a594e1b92 registry.k8s.io/pause:3.6 "/pause" Up 3 days k8s_POD_coredns 

Выведенные контейнеры через docker ps внутри оболочки minikube, представляют компоненты мастера Kubernetes. У каждого компонента есть свой уникальный идентификатор контейнера (например, k8s_kube-apiserver, k8s_kube-controller-manager, k8s_etcd_etcd и т. д.). Они представляют основные сервисы, которые работают на мастер-узле и обеспечивают функционирование кластера Kubernetes.

Таким образом, перечисленные контейнеры являются компонентами мастера Kubernetes, которые управляют планированием, управлением и хранением состояния кластера.

About

k8s presentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published