Расскажите, как вы будете запускать приложение в Kubernetes, если из инструментов у вас только kubectl?
Общий процесс запуска приложения в Kubernetes выглядит следующим образом:
1. Сначала необходимо упаковать приложение в контейнер.
2. Далее запускаем контейнер в виде реплик с использованием Deployment.
3. Для доступности приложения в интернете и возможности подключения к нему настраиваем сервис LoadBalancer, который присваивает публичный IP-адрес и позволяет подключаться к кластеру извне.
4. Для маршрутизации трафика через балансировщик создаем Ingress в кластере, описывающий правила маршрутизации, и запускаем Ingress-контроллер.
Все эти шаги можно выполнить с помощью kubectl, используя командную строку. Это императивный способ управления Kubernetes, когда мы явно указываем, что нужно сделать.
В промышленной эксплуатации часто используется декларативный подход, при котором мы описываем желаемое состояние в манифестах, и Kubernetes самостоятельно принимает решения о необходимых действиях. Затем мы применяем эти манифесты с помощью команды kubectl apply.
Общий процесс запуска приложения в Kubernetes выглядит следующим образом:
1. Сначала необходимо упаковать приложение в контейнер.
2. Далее запускаем контейнер в виде реплик с использованием Deployment.
3. Для доступности приложения в интернете и возможности подключения к нему настраиваем сервис LoadBalancer, который присваивает публичный IP-адрес и позволяет подключаться к кластеру извне.
4. Для маршрутизации трафика через балансировщик создаем Ingress в кластере, описывающий правила маршрутизации, и запускаем Ingress-контроллер.
Все эти шаги можно выполнить с помощью kubectl, используя командную строку. Это императивный способ управления Kubernetes, когда мы явно указываем, что нужно сделать.
В промышленной эксплуатации часто используется декларативный подход, при котором мы описываем желаемое состояние в манифестах, и Kubernetes самостоятельно принимает решения о необходимых действиях. Затем мы применяем эти манифесты с помощью команды kubectl apply.
Что такое Deployment?
Deployment, по сравнению с ReplicaSet, является более абстрактной концепцией. В то время как ReplicaSet отвечает за запуск и обеспечение доступности подов, Deployment позволяет осуществлять декларативные обновления подов с использованием ReplicaSet.
Когда необходимо обновить версии или откатиться к предыдущим для группы контейнеров, мы обращаемся к Deployment.
Deployment, по сравнению с ReplicaSet, является более абстрактной концепцией. В то время как ReplicaSet отвечает за запуск и обеспечение доступности подов, Deployment позволяет осуществлять декларативные обновления подов с использованием ReplicaSet.
Когда необходимо обновить версии или откатиться к предыдущим для группы контейнеров, мы обращаемся к Deployment.
Terraform Backend. Какой лучше?
AWS S3 — Standard (с блокировкой через DynamoDB). Сохраняет состояние в виде заданного ключа в заданном сегменте на Amazon S3. Этот бэкэнд также поддерживает блокировку состояния и проверку согласованности через DynamoDB.
terraform enterprise — Standard (без блокировки).
etcd — Standard (без блокировки). Сохраняет состояние в etcd 2.x по заданному пути.
etcdv3 — Standard (с блокировкой). Сохраняет состояние в хранилище etcd в виде K/V с заданным префиксом.
gcs — Standard (с блокировкой). Сохраняет состояние как объект в настраиваемом префиксе в заданном сегменте в Google Cloud Storage (GCS). Этот бэкэнд также поддерживает блокировку состояния.
Gitlab Terraform state (с блокировкой). Хранит состояние в Gitlab Terraform state хранилище, используя HTTP протокол и права Gitlab для доступа.
Существуют также и другие Backend для Terraform.
AWS S3 — Standard (с блокировкой через DynamoDB). Сохраняет состояние в виде заданного ключа в заданном сегменте на Amazon S3. Этот бэкэнд также поддерживает блокировку состояния и проверку согласованности через DynamoDB.
terraform enterprise — Standard (без блокировки).
etcd — Standard (без блокировки). Сохраняет состояние в etcd 2.x по заданному пути.
etcdv3 — Standard (с блокировкой). Сохраняет состояние в хранилище etcd в виде K/V с заданным префиксом.
gcs — Standard (с блокировкой). Сохраняет состояние как объект в настраиваемом префиксе в заданном сегменте в Google Cloud Storage (GCS). Этот бэкэнд также поддерживает блокировку состояния.
Gitlab Terraform state (с блокировкой). Хранит состояние в Gitlab Terraform state хранилище, используя HTTP протокол и права Gitlab для доступа.
Существуют также и другие Backend для Terraform.
Что такое гипервизор?
Гипервизор, также известный как монитор виртуальных машин, — это программное обеспечение для создания и запуска виртуальных машин. С его помощью можно запустить несколько гостевых операционных систем на одном компьютере. Это достигается путем разделения ресурсов, таких как оперативная память, процессорное время и другие, что позволяет сократить потребление памяти, дискового пространства и обслуживания. Существует два типа гипервизоров:
— первого типа, который представляет собой легковесную операционную систему, запускаемую на оборудовании;
— второго типа, который представляет собой программное обеспечение, запускаемое из операционной системы.
Гипервизор, также известный как монитор виртуальных машин, — это программное обеспечение для создания и запуска виртуальных машин. С его помощью можно запустить несколько гостевых операционных систем на одном компьютере. Это достигается путем разделения ресурсов, таких как оперативная память, процессорное время и другие, что позволяет сократить потребление памяти, дискового пространства и обслуживания. Существует два типа гипервизоров:
— первого типа, который представляет собой легковесную операционную систему, запускаемую на оборудовании;
— второго типа, который представляет собой программное обеспечение, запускаемое из операционной системы.
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
👩💻∞ Почему женщины в IT стараются быть подальше от DevOps
DevOps — одно из самых модных и высокооплачиваемых направлений в IT. Однако женщины почему-то обходят его стороной. Рассмотрим распространенные мифы и заблуждения, отпугивающие девушек от DevOps.
Читать статью
#почитать
DevOps — одно из самых модных и высокооплачиваемых направлений в IT. Однако женщины почему-то обходят его стороной. Рассмотрим распространенные мифы и заблуждения, отпугивающие девушек от DevOps.
Читать статью
#почитать
Расскажите о наиболее распространенных командах Docker.
docker push: закачать репозиторий или образ в Registry;
docker run: запустить команду в новом контейнере;
docker pull: скачать репозиторий или образ из Registry;
docker start: запустить один или несколько контейнеров;
docker stop: остановить один или несколько контейнеров;
docker search: поиск образа на DockerHub;
docker commit: сохранить изменения в новый образ.
docker push: закачать репозиторий или образ в Registry;
docker run: запустить команду в новом контейнере;
docker pull: скачать репозиторий или образ из Registry;
docker start: запустить один или несколько контейнеров;
docker stop: остановить один или несколько контейнеров;
docker search: поиск образа на DockerHub;
docker commit: сохранить изменения в новый образ.
Опишите все возможные состояния контейнера Docker
Created — контейнер создан, но не активен.
Restarting — контейнер в процессе перезапуска.
Running — контейнер работает.
Paused — контейнер приостановлен.
Exited — контейнер закончил свою работу.
Dead — контейнер, который сервис попытался остановить, но не смог.
Created — контейнер создан, но не активен.
Restarting — контейнер в процессе перезапуска.
Running — контейнер работает.
Paused — контейнер приостановлен.
Exited — контейнер закончил свою работу.
Dead — контейнер, который сервис попытался остановить, но не смог.
На каких платформах запускается Docker?
Docker работает на Windows (x86_64), Linux (x86_64, ARM, s390x, ppc64le).
Docker работает на Windows (x86_64), Linux (x86_64, ARM, s390x, ppc64le).
Расскажите о процедуре входа в Docker Repository
Чтобы войти в Docker Repository, используется следующая команда:
docker login [OPTIONS] [SERVER]
Например, для входа в registry, размещенную на своих мощностях (локально), команда будет такой:
$ docker login localhost:8080
Чтобы войти в Docker Repository, используется следующая команда:
docker login [OPTIONS] [SERVER]
Например, для входа в registry, размещенную на своих мощностях (локально), команда будет такой:
$ docker login localhost:8080
Как проверить версии Docker client и Docker server?
Версию Docker можно проверить с помощью docker version [параметры]. Если не указывать параметры, команда выдаст всю информацию, связанную с версией клиента и сервера. Чтобы получить только версию сервера, можно запустить такую команду:
Версию Docker можно проверить с помощью docker version [параметры]. Если не указывать параметры, команда выдаст всю информацию, связанную с версией клиента и сервера. Чтобы получить только версию сервера, можно запустить такую команду:
docker version --format '{{.Server.Version}}'
Опишите параметр memory-swap
С помощью параметра memory-swap можно разрешить контейнеру записывать на диск данные, превышающие размер оперативной памяти, выделенной контейнеру. Он работает, только если используется одновременно с параметром memory. Например, если memory = "400m" и memory-swap = "1g", то контейнер может использовать 400мб оперативной памяти и 600мб подкачки (1гб-400мб).
С помощью параметра memory-swap можно разрешить контейнеру записывать на диск данные, превышающие размер оперативной памяти, выделенной контейнеру. Он работает, только если используется одновременно с параметром memory. Например, если memory = "400m" и memory-swap = "1g", то контейнер может использовать 400мб оперативной памяти и 600мб подкачки (1гб-400мб).
В чем разница между Registry и Repository?
Registry — это сервис хранения и распространения образов, также DockerHub — это Registry по умолчанию. Repository — это набор связанных образов. У них одно и то же имя, но разные метки.
Registry — это сервис хранения и распространения образов, также DockerHub — это Registry по умолчанию. Repository — это набор связанных образов. У них одно и то же имя, но разные метки.
Как выполняется мониторинг Docker в производственных окружениях?
Для мониторинга есть инструменты Docker stats и Docker events. С их помощью можно получить отчеты по важной статистике. Если запустить stats с некоторым идентификатором контейнера, он вернет использование оперативной памяти и процессорного времени в контейнере. Это схоже с использованием команды top. С другой стороны есть events, показывающая список активностей в процессе работы сервиса Docker. Вот некоторые из них: подключение к консоли контейнера, commit, переименование, удаление и т.п., а также есть возможность фильтрации нужных событий.
Для мониторинга есть инструменты Docker stats и Docker events. С их помощью можно получить отчеты по важной статистике. Если запустить stats с некоторым идентификатором контейнера, он вернет использование оперативной памяти и процессорного времени в контейнере. Это схоже с использованием команды top. С другой стороны есть events, показывающая список активностей в процессе работы сервиса Docker. Вот некоторые из них: подключение к консоли контейнера, commit, переименование, удаление и т.п., а также есть возможность фильтрации нужных событий.
Что такое пространства имен в Docker?
Пространства имен Docker — это технология обеспечения изолированных рабочих пространств, известная как контейнер. Как только контейнер запускается, создается набор пространств имен для этого контейнера. Они обеспечивают уровень изоляции для контейнеров, поскольку каждый контейнер работает в отдельном пространстве имен, с ограничением доступа к другим пространствам.
Пространства имен Docker — это технология обеспечения изолированных рабочих пространств, известная как контейнер. Как только контейнер запускается, создается набор пространств имен для этого контейнера. Они обеспечивают уровень изоляции для контейнеров, поскольку каждый контейнер работает в отдельном пространстве имен, с ограничением доступа к другим пространствам.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Объясните метки объектов в Docker
Метки объектов Docker — это пары ключ-значение, сохраняемые в виде строк. Мы можем применить метаданные с их помощью. Метки могут быть применены к любому объекту, например, образу, контейнеру, тому, сети, локальным сервисам, узлам swarm и непосредственно сервисам. Каждая пара должна быть уникальной для объекта, сами метки не меняются динамически на протяжении существования объекта.
Метки объектов Docker — это пары ключ-значение, сохраняемые в виде строк. Мы можем применить метаданные с их помощью. Метки могут быть применены к любому объекту, например, образу, контейнеру, тому, сети, локальным сервисам, узлам swarm и непосредственно сервисам. Каждая пара должна быть уникальной для объекта, сами метки не меняются динамически на протяжении существования объекта.
Чем отличается контейнеризация в виде Docker от других технологий?
Docker может быть легко развернут в любой облачной платформе. Также разработчики могут создать готовые к запуску контейнеризированные приложения быстрее, могут легко развертывать приложения и управлять ими. Кроме того, контейнеры могут быть общими для приложений. Эти функции не работают в других технологиях контейнеризации.
Docker может быть легко развернут в любой облачной платформе. Также разработчики могут создать готовые к запуску контейнеризированные приложения быстрее, могут легко развертывать приложения и управлять ими. Кроме того, контейнеры могут быть общими для приложений. Эти функции не работают в других технологиях контейнеризации.
Расскажите об образах Docker, DockerHub, Dockerfile
Образы: файлы, содержащие несколько слоев, используемые для выполнения кода внутри контейнера. Они собираются по инструкциям для получения исполняемой версии приложения. Образы могут ускорить сборку в Docker с помощью кэширования каждого этапа.
DockerHub: сервис для поиска и совместного использования образов контейнеров. Вы можете выгружать туда свои образы, скачивать их оттуда, работать с частными репозиториями образов контейнеров, собирать автоматически образы с помощью GitHub (Bitbucket), а затем закачивать их в DockerHub. Этот сервис предоставляет компания Docker.
Dockerfile: текстовый файл, используемый для сборки образа. Он содержит инструкции и команды по сборке образа. Docker читает их и автоматически собирает образ.
Образы: файлы, содержащие несколько слоев, используемые для выполнения кода внутри контейнера. Они собираются по инструкциям для получения исполняемой версии приложения. Образы могут ускорить сборку в Docker с помощью кэширования каждого этапа.
DockerHub: сервис для поиска и совместного использования образов контейнеров. Вы можете выгружать туда свои образы, скачивать их оттуда, работать с частными репозиториями образов контейнеров, собирать автоматически образы с помощью GitHub (Bitbucket), а затем закачивать их в DockerHub. Этот сервис предоставляет компания Docker.
Dockerfile: текстовый файл, используемый для сборки образа. Он содержит инструкции и команды по сборке образа. Docker читает их и автоматически собирает образ.
Каково назначение docker_host?
Он задает URL или путь к сокету unix, используемые для соединения с API Docker. Значение по умолчанию — unix://var/run/docker.sock
Для подключения к удаленному серверу обычно используется TCP, например:
tcp://192.0.1.20:3230
Он задает URL или путь к сокету unix, используемые для соединения с API Docker. Значение по умолчанию — unix://var/run/docker.sock
Для подключения к удаленному серверу обычно используется TCP, например:
tcp://192.0.1.20:3230
Расскажите о средствах оркестрации и случаях их использования
Оркестрация позволяет управлять работой контейнеров, запущенных в больших и динамических окружениях. С ее помощью можно автоматизировать и управлять следующими задачами:
✍🏻 Создание и развертывание контейнеров;
✍🏻 Балансировка нагрузки;
✍🏻 Разделение ресурсов между контейнерами;
✍🏻 Мониторинг контейнеров и серверов;
✍🏻 Масштабирование контейнеров;
✍🏻 Перенос контейнеров с одного сервера на другой, если на первом возникает недостаток ресурсов.
Оркестрация позволяет управлять работой контейнеров, запущенных в больших и динамических окружениях. С ее помощью можно автоматизировать и управлять следующими задачами:
✍🏻 Создание и развертывание контейнеров;
✍🏻 Балансировка нагрузки;
✍🏻 Разделение ресурсов между контейнерами;
✍🏻 Мониторинг контейнеров и серверов;
✍🏻 Масштабирование контейнеров;
✍🏻 Перенос контейнеров с одного сервера на другой, если на первом возникает недостаток ресурсов.