banner banner banner
Облачная экосистема
Облачная экосистема
Оценить:
Рейтинг: 0

Полная версия:

Облачная экосистема

скачать книгу бесплатно


name: Nginx

spec:

replicas: 3

selector:

app: Nginx // метка, по которой реплика определяет наличие запущенных контейнеров

template:

containers:

– name: test

image: debian

Для балансировки используется разновидность service (логическая сущность) – LoadBalancer, кроме которого существует ещё ClasterIP и Node Port:

appVersion: v1

kind: Service

metadata:

name: test_service

apec:

type: LoadBalanser

ports:

– port: 80

– targetPort: 80

– protocol: TCP

– name: http

selector:

app: WEB

Плагины overlay сети (создаётся и настраивается автоматически): Contig, Flannel, GCE networking, Linux bridging, Calico, Kube-DNS, SkyDNS. #configmap apiVersion: v1 kind: ConfigMap metadata: name: config_name data:

Аналогично секретам в Docker-swarm существует секрет и для Kubernetes, примером которых могут быть настройки NGINX :

#secrets

apiVersion: v1

kind: Secrets

metadata:name: test_secret

data:

password: ....

А для добавления секрета в POD, нужно его указать в конфиге POD:

....

valumes:

secret:

secretName: test_secret



У Kubernetes больше разновидностей Volumes:

* emptyDir;

* hostPatch;

* gcePersistentDisc – диск на Google Cloud;

* awsElasticBlockStore – диск на Amazon AWS.

volumeMounts:

– name: app

nountPath: ""

volumes:

– name: app

hostPatch:

....

Особенностью буде UI: Dashbord UI

Дополнительно имеется:

* Main metrics – сбор метрик;

* Logs collect – сбор логов;

* Scheduled JOBs;

* Autentification;

* Federation – распределение по дата-центрам;

* Helm – пакетный менеджер, аналог Docker Hub.

https://www.youtube.com/watch?v=FvlwBWvI-Zg

Команды Docker

Docker – более современный аналог контейнеров RKT.

В Linux, когда завершается процесс с PID=1, то зарывается и NameSpace, что приводит к завершению работы ОС, в случае контейнера, аналогично, так как он является частным случаем ОС. Разграничение процессов сам по себе не даёт дополнительного оверхед, также как и мониторинг и ограничение ресурсов на процессы, ибо такие же возможности по настройки предоставляет systemd в хостовой ОС. Виртуализация сети происходит полностью: и localhost и мост, что позволяет создать мосты от нескольких контейнеров к одному localhost и тем самым сделать его единым для них, что активно используется в POD Kubernetes.

Запуск временного контейнера в интерактивном режиме -it. Для входа нужно нажать Ctrl+D, которое отравит сигнал на завершение работы, после чего он будет удалён –rm во избежание засорения системы остановленными современными контейнерами. Если образ создан таким образом, что в контейнере приложение запускается в оболочке, что неправильно, то сигнал буде отравлен приложению, а контейнер продолжит работать с оболочкой, в таком случае для выхода в отдельном терминале нужно будет его убить по его имени –name name_container. Например,:

Docker run –rm -it –name name_container ubuntu BASH

В начале CLI Docker имел простой набор команд, позволяющий управлять жизненным циклом контейнеров. Среди них:

* Docker run для запуска контейнера;

* Docker ps для просмотра запущенных контейнеров;

* Docker rm для удаления контейнера;

* Docker build для создания своего образа;

* Docker images для просмотра существующих контейнеров;

* Docker rmi для удаления образа.

Но с ростом популярности, команд становилось всё больше и их было решено сгруппировать в группы, так вместо простого "Docker run" появилась команда "Docker container", которая имеет 25 команд в 19 версии Docker. Это очистка, и остановка с восстановлением, и логи и различные виды подсоединений к контейнеру. Таже судьба постигла и работы с образами. Но, старые команды остались пока из-за совместимости и удобства, ведь в большинстве случаев требуется базовый набор. На нём и остановимся:

Запуск контейнера:

docker run -d –name name_container ubuntu bash

Удалить работающий контейнер:

docker rm -f name_container

Вывод всех контейнеров:

docker ps -a

Вывод работающих контейнеров:

docker ps

Вывод контейнеров с потребляемыми ресурсами:

docker stats

Вывод процессов в контейнере:

docker top {name_container}

Подключиться к контейнеру через оболочку sh (BASH в контейнерах alpine нет):

docker exec -it sh

Чистка системы от неиспользуемых образов:

docker image prune

Удалить весящие образа:

docker rmi $(docker images -f "dangling=true" -q)

Показать образа:

docker images

Создать образ в папке dir с Dockerfile:

docker build -t docker_user/name_image dir

Удалить образ:

docker rmi docker_user/name_image dir

Подключиться к Docker hub:

docker login

Отравить последнюю редакцию (тэг ставится и смещается автоматически, если не указан иной) образ на Docker hub:

docker push ocker_user/name_image dir:latest

Более широкий список в https://niqdev.github.io/devops/docker/.