Развертывание Kubernetes с помощью Kubeadm на CentOS 7
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Мы все знаем и любим Docker, платформу для создания, управления и распределения контейнеров приложений на нескольких компьютерах. Docker Inc. предоставляет сервис для размещения контейнеров с открытым исходным кодом, которые можно загружать (или извлекать), как git-репозиторий, известный как «Docker Registry». Думайте об этом как о GitHub для контейнеров Docker.
Но что, если вы хотите разместить свой собственный реестр отдельно от публичного? Что ж, Docker Inc. открыла приложение для реестра на GitHub.
Из этого туториала вы узнаете, как настроить личный реестр Docker с помощью CoreOS на новом VPS.
Мы не будем тратить кучу времени на то, чтобы точно узнать, что могут делать Docker и CoreOS, поскольку это выходит за рамки этого руководства. По сути, CoreOS предназначена для больших кластеров серверов, она небольшая, быстрая и регулярно получает регулярные обновления безопасности. Его корневая файловая система также доступна только для чтения. Это означает, что вы должны использовать Docker для запуска любого программного обеспечения, которое не входит в базовую установку.
Это делает Core OS идеальной хост-системой для Docker!
Docker Inc. предоставила реестр в качестве образа верхнего уровня, это означает, что мы можем сделать это простым:
docker pull registry
Это может занять несколько минут в зависимости от скорости соединения.
Плюс того, что изображение верхнего уровня также означает, что он получает регулярную поддержку и обновления.
Теперь давайте проверим реестр. Мы можем создать новый контейнер, используя образ реестра:
docker run -p 5000:5000 -d --name=basic_registry registry
Для тех, кто не использовал Docker слишком часто, этот -p
флаг означает PORT
, что мы выставляем порт 5000 из контейнера на порт хоста 5000.
Этот -d
флаг означает daemon
, что контейнер будет работать в фоновом режиме, а не печатать выходные данные в текущем сеансе SSH. Мы также хотим назвать этот базовый тестовый контейнер, используя --name
опцию, чтобы мы могли легко управлять им позже.
Убедитесь, что ваш основной контейнер реестра работает с помощью docker ps
. Вывод должен выглядеть примерно так:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
edfb54e4a8c4 registry:0.8.1 "/bin/sh -c 'exec do 7 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp basic_registry
Кроме того, зайдите http://YOUR_IP:5000
в ваш веб-браузер, и вы должны получить сообщение, подобное следующему:
"docker-registry server (dev) (v0.8.1)"
Обратите внимание на слово
dev
в скобках. Это означает, что на сервере в данный момент выполняется конфигурация dev. Мы рассмотрим больше конфигурации в ближайшее время.
Теперь у вас есть собственный (очень простой) реестр контейнеров! Но мы еще не закончили.
Может быть, вы хотите сохранить это в тайне от посторонних глаз, или можете хранить ваши изображения на Amazon S3 вместо локального хранилища. Давайте рассмотрим различные параметры конфигурации в следующем разделе.
Прежде чем мы продолжим, давайте уничтожим тестовый контейнер, чтобы не столкнуться с конфликтующими портами.
docker kill basic_registry
Есть два способа передать конфигурацию в реестр Docker. Одним из способов является передача переменных среды в новый контейнер, а другим - добавить файл конфигурации.
Вот несколько общих параметров конфигурации, которые мы будем использовать:
loglevel
- Минимальный объем информации для входа в консоль. По умолчанию это info
.standalone
- Должен ли этот реестр действовать самостоятельно? (Никогда не запрашивает публичный реестр.) По умолчанию true
.index_endpoint
- Если не автономно, какой другой индекс мы будем запрашивать? По умолчанию index.docker.io
.cache
и cache_lru
- Опции, касающиеся использования кэша Redis для небольших файлов, мы коснемся этого позже.storage
- Какой сервер хранения мы должны использовать для этого сервера? (В этом уроке мы будем использовать локальный).storage_path
- При использовании локального хранилища, в каком каталоге мы должны хранить файлы?Прежде чем мы начнем работать с конфигурацией, нам нужен базовый файл для работы. Файл из репозитория Docker Registry на GitHub будет работать нормально:
wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml
Файл должен успешно сохраниться с выводом, таким как:
2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]
Большой! Теперь мы можем изменить этот файл в соответствии с нашими потребностями.
Единственный текстовый редактор, который поставляется с Core OS, - vim
но не волнуйтесь, если вы никогда не использовали его раньше, это шаг за шагом объяснит, что редактировать и как это делать.
vim config_sample.yml
Как только вы откроете файл, нажмите I
и в правом нижнем углу должно отобразиться: -- INSERT --
для режима вставки. Прокрутите весь путь до конца файла с помощью клавиш со стрелками, вы должны увидеть раздел с надписью prod
.
Мы будем менять две строки, изменения ниже
prod:
<<: *local
storage_path: _env:STORAGE_PATH:/data
Что мы сделали, так это изменили prod
конфигурацию для получения из local
раздела вместо s3
раздела. Затем мы переписали storage_path
использование пути /data
внутри нового контейнера.
Как только вы подтвердите, что все изменения верны, нажмите, ESC
чтобы выйти из режима вставки и ввести :wq
(это означает, что вы запишите изменения в файл и выйдите из vim.)
Теперь давайте переименуем файл просто config.yml
mv config_sample.yml config.yml
Если вы хотите использовать redis для ускорения работы вашего реестра контейнеров, это так же просто, как вытащить новый контейнер из открытого реестра и добавить еще несколько строк конфигурации.
Сначала перетащите изображение верхнего уровня Redis:
docker pull redis
После успешного извлечения образа мы можем запустить его и назвать его так же, как в тестовом реестре:
docker run -d --name registry-redis redis
Поскольку redis находится в памяти, нам не нужно настраивать его, так как мы свяжем его с контейнером реестра на следующих шагах.
Еще раз, убедитесь, что он работает, используя docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54f65641eccf redis:2.8 "redis-server" 2 seconds ago Up 1 seconds 6379/tcp registry-redis
Теперь вновь открыть config.yml
в vim
и ввести режим вставки так же , как в первый раз мы редактировали.
Добавьте следующие строки под prod
разделом, убедившись в правильности отступа. На этот раз мы только добавляем cache
и cache_lru
.
cache:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 0
cache_lru:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 1
Переменные среды REDIS_PORT_6379_TCP_ADDR
и REDIS_PORT_6379_TCP_PORT
передаются в контейнер реестра после связывания с контейнером Redis.
Теперь вы настроили контейнер Redis, который будет работать рука об руку с вашим контейнером реестра. Теперь на построение реестра!
У нас есть все настройки и все готово, теперь нам нужно собрать реальный контейнер реестра.
Разожгите vim Dockerfile
создать новый Dockerfile. Войдите в режим вставки и следуйте приведенным ниже правкам.
FROM registry:latest
# Add the custom configuration file we made
ADD ./config.yml /docker-registry/config/config.yml
# Create the data directory
RUN mkdir /data
# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
# Make sure we use the prod configuration settings
env SETTINGS_FLAVOR prod
То, что мы сделали выше, это по существу расширение образа реестра, чтобы он использовал наш файл конфигурации и настройки. Dockerfile - это набор инструкций для чтения и сборки Docker. Если вы хотите узнать больше о Dockerfiles и их синтаксисе, посмотрите официальную документацию сайта Docker.
Далее нам нужно собрать контейнер для использования.
docker build -t my_registry .
Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon
Step 0 : FROM registry
---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
---> Running in a090f0bdbfd1
---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
---> Running in 565b5bfb2b22
---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
---> Running in 31a92847b851
---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374
Теперь мы готовы к запуску!
Давайте создадим каталог в нашей хост-системе для монтирования в контейнер как /data
том.
mkdir registry-data
Теперь мы можем раскрутить новый контейнер. Если вы планируете использовать кэш Redis, используйте 2-ю команду ниже.
# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry
# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry
Чтобы убедиться, что ваш сервер работает правильно, посетите http://YOUR_IP:5000
. Вы увидите следующее сообщение:
"docker-registry server (prod) (v0.8.1)"
Обратите внимание, (prod)
что наши изменения конфигурации были успешными!
Теперь, когда у нас есть собственный работающий реестр, мы хотим, чтобы клиент Docker на наших локальных машинах начал его использовать. Обычно вы используете команду:, docker login
но для нашего использования нам нужно добавить еще один аргумент в команду входа в систему:
docker login YOUR_IP:5000
Введите имя пользователя и пароль (подумайте об этом, как о создании новой учетной записи) и проигнорируйте сообщение о том, что вы должны его активировать.
Далее, давайте вытащим изображение и поместим его в наш собственный репозиторий.
# Pull the busybox image from the public registry
docker pull busybox
# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox
# Push it to our newly made registry
docker push YOUR_IP:5000/busybox
Если все выдвигается правильно, окончательное сообщение должно выглядеть следующим образом:
Pushing tag for rev [a9eb17255234] on
Поздравляем! Вы настроили свой собственный докерский репозиторий.
Вот несколько идей о том, как улучшить ваш новый частный реестр:
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Контейнеры LXC (контейнеры Linux) - это функция операционной системы Linux, которую можно использовать для запуска нескольких изолированных систем Linux на одном хосте. Thes
Введение Это руководство покажет вам, как создать и настроить рой Docker с использованием нескольких серверов Alpine Linux 3.9.0 и Portainer. Пожалуйста, знайте, что
Приложения PHP обычно состоят из веб-сервера, системы реляционных баз данных и самого интерпретатора языка. В этом уроке мы будем leveragin
Kubernetes - это платформа с открытым исходным кодом, разработанная Google для управления контейнерными приложениями на кластере серверов. Он основан на десятилетии и
Введение Docker - это приложение, которое позволяет нам развертывать программы, которые запускаются как контейнеры. Он был написан на популярном языке программирования Go
Используете другую систему? Введение Rancher - это платформа с открытым исходным кодом для запуска контейнеров и создания частного контейнерного сервиса. Rancher является базой
В этой статье объясняется, как установить docker-compose на CoreOS. В CoreOS папка / usr / является неизменяемой, поэтому стандартный путь / usr / local / bin недоступен для
Используете другую систему? Введение Rancher - это платформа с открытым исходным кодом для запуска контейнеров и создания частного контейнерного сервиса. Rancher является базой
Используете другую систему? Введение Sentry - это решение с открытым исходным кодом для отслеживания ошибок. Sentry отслеживает исключения и другие полезные сообщения для
Harbour - это сервер реестра корпоративного класса с открытым исходным кодом, который хранит и распространяет образы Docker. Harbour расширяет с открытым исходным кодом Docker Distribution b
Используете другую систему? Введение Docker Swarm превращает ваши отдельные серверы в кластер компьютеров, облегчая масштабирование, высокую доступность и
Используете другую систему? Docker - это приложение, которое позволяет развертывать программное обеспечение в виртуальных контейнерах. Это было написано в программе Go
Обзор RancherOS - это невероятно легкая операционная система (всего около 60 МБ), которая запускает системный демон Docker в качестве PID 0 для запуска системных служб.
Используете другую систему? Введение Docker Swarm превращает ваши отдельные серверы в кластер компьютеров; облегчение масштабирования, высокая доступность и
Это руководство объясняет основы начала работы с Docker. Я предполагаю, что у вас уже установлен Docker. Шаги в этом уроке будут работать на
При запуске веб-приложения вы, как правило, хотите максимально эффективно использовать свои ресурсы без необходимости конвертировать программное обеспечение для использования многопоточности.
Предпосылки к движку Docker 1.8+. Минимум 4 ГБ дискового пространства. Минимум 4 ГБ ОЗУ. Шаг 1. Установите Docker Для установки SQL-сервера, Docker mus
Используете другую систему? Введение Docker - это приложение, которое позволяет развертывать программное обеспечение в виртуальных контейнерах. Это было написано в G
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше