2024 Годоблачный родной Эксплуатация и обслуживание Настоящий бой Документация 99 оригинальный проект Нет. 004 Глава |Docker оптимальный Настоящий бой「2024」Сериал Нет. 004 Глава
Привет,добро пожаловать вКвалифицирован в эксплуатации и обслуживании。
Контент, которым сегодня поделились, Docker оптимальный Настоящий бой「2024」 в серии документов Docker Развертывание одного узла etcd Настоящий бой。
Карта контента
Настоящий бой Служить Конфигурация (Архитектура 1:1 Реплицируйте мелкомасштабную производственную среду, конфигурация немного другая)
имя хоста | IP | ЦП (ядро) | Память (ГБ) | Системный диск (ГБ) | Диск с данными (ГБ) | использовать |
---|---|---|---|---|---|---|
docker-node-1 | 192.168.9.81 | 4 | 16 | 40 | 100 | Докер-узел 1 |
docker-node-2 | 192.168.9.82 | 4 | 16 | 40 | 100 | Докер-узел 2 |
docker-node-3 | 192.168.9.83 | 4 | 16 | 40 | 100 | Докер-узел 3 |
общий | 3 | 12 | 48 | 120 | 300 |
Настоящий бойцовский окружение включает информацию о версии программного обеспечения.
В настоящее время существует два типа контейнеров, доступных для основных решений по развертыванию контейнеров etcd:
quay.io/coreos/etcd:v3.5.12
bitnami/etcd:3.5.12
Существует три способа настройки службы etcd:
Используйте переменные системной среды для настройки инструкций службы etcd:
lower_case_with_underscores
。Справочная вики-энциклопедиякнига Настоящий курс принят coreos Официально предоставлено etcd Зеркало,Развертывание одного узлаиз etcd сервисы и продемонстрировать реализацию с использованием файлов конфигурации и переменных среды соответственно. etcd Конфигурация сервиса.
Почему стоит выбрать изображение coreos?
Содержимое этого раздела реализовано с помощью файлов конфигурации. etcd Конфигурация сервиса.
mkdir -p /data/containers/etcd/{data,config}
etcd Служить Конфигурациядокумент Путь:/data/containers/etcd/config/etcd.conf.yml
Содержимое файла следующее:
name: etcd-s1
data-dir: /var/etcd
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://0.0.0.0:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://0.0.0.0:2380
initial-cluster: etcd-s1=http://0.0.0.0:2380
initial-cluster-token: etcd-cluster
initial-cluster-state: new
logger: zap
log-level: info
#log-outputs: stderr
Описание специального параметра:
name: etcd member Имя, может быть изменено в зависимости от реальной ситуации data-dir: etcd Каталог данных, который можно изменить в соответствии с фактическими условиями. listen-client-urls: client Адрес мониторинга трафика, просто заполните его согласно документу, если нет особых требований. advertise-client-urls: Должен member Клиенты, рекламируемые на внешнем рынке url список,одиночный узел не нужно изменять при развертывании. Режим развертывания кластера необходимо изменить, чтобы обеспечить Служитьиз места расположения контейнера. IP listen-peer-urls: peer Адрес мониторинга трафика, просто заполните его согласно документу, если нет особых требований. initial-advertise-peer-urls: Должен member другим членам в том же кластере member Объявлено peer url список,одиночный узел не нужно изменять при развертывании. Режим развертывания кластера необходимо изменить, чтобы обеспечить Служитьиз места расположения контейнера. IP initial-cluster: Инициализация информации о кластере, одиночная узел не нужно модифицировать при развертывании. В режиме развертывания кластера необходимо заполнить все поля. member информация initial-cluster-token: Используется при инициализации кластера жетон, пиши что хочешь initial-cluster-state: Инициализируйте состояние кластера, необязательное значение: new или existing,Обычно используется new
version: '3'
services:
etcd:
container_name: etcd-s1
image: quay.io/coreos/etcd:v3.5.12
command: /usr/local/bin/etcd --config-file=/var/lib/etcd/conf/etcd.conf.yml
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data:/var/etcd
- ${DOCKER_VOLUME_DIRECTORY:-.}/config/etcd.conf.yml:/var/lib/etcd/conf/etcd.conf.yml
- "/etc/localtime:/etc/localtime:ro"
ports:
- 2379:2379
- 2380:2380
restart: always
networks:
default:
name: etcd-tier
driver: bridge
Описание специального параметра:
networks.default: Создайте новый, используя bridge сеть шаблонов etcd-tier, Имя можно настроить в соответствии с потребностями.
cd /data/containers/etcd
docker compose up -d
Результаты успешного выполнения команды следующие:
[root@docker-node-1 etcd]# docker compose up -d
[+] Running 1/2
⠸ Network etcd-tier Created 0.4s
✔ Container etcd-s1 Started
[root@docker-node-1 etcd]# docker compose ps -a
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
etcd-s1 quay.io/coreos/etcd:v3.5.12 "/usr/local/bin/etcd…" etcd 53 seconds ago Up 53 seconds 0.0.0.0:2379-2380->2379-2380/tcp, :::2379-2380->2379-2380/tcp
Содержимое этого раздела реализовано с использованием переменных среды. etcd Конфигурация сервиса.
mkdir -p /data/containers/etcd/data
version: '3'
services:
etcd:
container_name: etcd-s1
image: quay.io/coreos/etcd:v3.5.12
environment:
- ETCD_NAME=etcd-s1
- ETCD_DATA_DIR=/var/etcd
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380
- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
- ETCD_INITIAL_CLUSTER=etcd-s1=http://0.0.0.0:2380
- ETCD_INITIAL_CLUSTER_STATE=new
- ETCD_LOGGER=zap
- ETCD_LOG_LeveL=info
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data:/var/etcd
- "/etc/localtime:/etc/localtime:ro"
ports:
- 2379:2379
- 2380:2380
restart: always
networks:
default:
name: etcd-tier
driver: bridge
cd /data/containers/etcd
docker compose up -d
[root@docker-node-1 etcd]# docker compose ps -a
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
etcd-s1 quay.io/coreos/etcd:v3.5.12 "/usr/local/bin/etcd" etcd 17 seconds ago Up 16 seconds 0.0.0.0:2379-2380->2379-2380/tcp, :::2379-2380->2379-2380/tcp
Чтобы проверить доступность службы etcd, найдите дополнительный компьютер для установки клиентского инструмента etcd для проверочного тестирования.
cd /srv
wget https://github.com/etcd-io/etcd/releases/download/v3.5.12/etcd-v3.5.12-linux-amd64.tar.gz
tar xvf etcd-v3.5.12-linux-amd64.tar.gz
cd etcd-v3.5.12-linux-amd64
# ./etcdctl --endpoints=192.168.9.81:2379 --write-out=table endpoint health
+-------------------+--------+------------+-------+
| ENDPOINT | HEALTH | TOOK | ERROR |
+-------------------+--------+------------+-------+
| 192.168.9.81:2379 | true | 2.517794ms | |
+-------------------+--------+------------+-------+
# ./etcdctl --endpoints=192.168.9.81:2379 --write-out=table endpoint status
+-------------------+-----------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+-------------------+-----------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| 192.168.9.81:2379 | 1c70f9bbb41018f | 3.5.12 | 20 kB | true | false | 2 | 4 | 4 | |
+-------------------+-----------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
# ./etcdctl --endpoints=192.168.9.81:2379 --write-out=table member list
+-----------------+---------+---------+---------------------+---------------------+------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+-----------------+---------+---------+---------------------+---------------------+------------+
| 1c70f9bbb41018f | started | etcd-s1 | http://0.0.0.0:2380 | http://0.0.0.0:2379 | false |
+-----------------+---------+---------+---------------------+---------------------+------------+
# Запись данных
# ./etcdctl --endpoints=192.168.9.81:2379 put foo bar
OK
# Чтение данных
# ./etcdctl --endpoints=192.168.9.81:2379 get foo
foo
bar
Все операции в полном тексте я организовал в автоматизированные скрипты:
deploy-etcd-conf.sh
#!/bin/bash
set -e
etcd_name=${1:-"etcd-s1"}
docker_container_dir=${2:-"/data/containers"}
# создатель Базового каталога
mkdir -p ${docker_container_dir}/etcd/{data,config}
# создавать etcd Конфигурациядокумент
function deploy_etcd_config(){
cat > ${docker_container_dir}/etcd/config/etcd.conf.yml <<-EOF
name: ${etcd_name}
data-dir: /var/etcd
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://0.0.0.0:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://0.0.0.0:2380
initial-cluster: etcd-s1=http://0.0.0.0:2380
initial-cluster-token: etcd-cluster
initial-cluster-state: new
logger: zap
log-level: info
#log-outputs: stderr
EOF
}
# создавать docker-compose документ
function deploy_compose_config(){
cat > ${docker_container_dir}/etcd/docker-compose.yml <<-EOF
version: '3'
services:
etcd:
container_name: ${etcd_name}
image: quay.io/coreos/etcd:v3.5.12
command: /usr/local/bin/etcd --config-file=/var/lib/etcd/conf/etcd.conf.yml
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data:/var/etcd
- ${DOCKER_VOLUME_DIRECTORY:-.}/config/etcd.conf.yml:/var/lib/etcd/conf/etcd.conf.yml
- "/etc/localtime:/etc/localtime:ro"
ports:
- 2379:2379
- 2380:2380
restart: always
networks:
default:
name: etcd-tier
driver: bridge
EOF
}
# создавать etcd Служить
function deploy_etcd(){
cd ${docker_container_dir}/etcd
docker compose up -d
}
# проверять etcd Служить
function check_etcd(){
cd ${docker_container_dir}/etcd
docker compose ps
}
echo -e "\033[1;32m 1.Deploy etcd config.\n \033[0m"
deploy_etcd_config
echo -e "\033[1;32m 2.Deploy docker compose config.\n \033[0m"
deploy_compose_config
echo -e "\033[1;32m 3.Deploy etcd service.\n \033[0m"
deploy_etcd
echo -e "\033[1;32m 4.Check etcd service status. \033[0m"
check_etcd
deploy-etcd-env.sh
#!/bin/bash
set -e
etcd_name=${1:-"etcd-s1"}
docker_container_dir=${2:-"/data/containers"}
# создатель Базового каталога
mkdir -p ${docker_container_dir}/etcd/data
# создавать docker-compose документ
function deploy_compose_config(){
cat > ${docker_container_dir}/etcd/docker-compose.yml <<-EOF
version: '3'
services:
etcd:
container_name: ${etcd_name}
image: quay.io/coreos/etcd:v3.5.12
environment:
- ETCD_NAME=${etcd_name}
- ETCD_DATA_DIR=/var/etcd
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380
- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
- ETCD_INITIAL_CLUSTER=etcd-s1=http://0.0.0.0:2380
- ETCD_INITIAL_CLUSTER_STATE=new
- ETCD_LOGGER=zap
- ETCD_LOG_LeveL=info
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data:/var/etcd
- "/etc/localtime:/etc/localtime:ro"
ports:
- 2379:2379
- 2380:2380
restart: always
networks:
default:
name: etcd-tier
driver: bridge
EOF
}
# создавать etcd Служить
function deploy_etcd(){
cd ${docker_container_dir}/etcd
docker compose up -d
}
# проверять etcd Служить
function check_etcd(){
cd ${docker_container_dir}/etcd
docker compose ps
}
echo -e "\033[1;32m 1.Deploy docker compose config.\n \033[0m"
deploy_compose_config
echo -e "\033[1;32m 2.Deploy etcd service.\n \033[0m"
deploy_etcd
echo -e "\033[1;32m 3.Check etcd service status. \033[0m"
check_etcd
проиллюстрировать: Потому что это не было решено в процессе отладки. EOF Проблема с сообщением об ошибке, функция внутри cat Часть контента не имеет отступов и выглядит неприглядно, но на его использование это не влияет.
Основываясь на том, что вы узнали из этой статьи, пожалуйста, выполните следующие задания «Настоящий бой».
В этой статье представлена информация, основанная на coreos Официально предоставлено etcd Развертывание зеркала etcd Подробные процедуры обслуживания и меры предосторожности. Основное содержание резюмируется следующим образом:
Получить эту статью Настоящий бой видео(пожалуйста, обрати внимание,Асинхронный выпуск документального видео,пожалуйста, сначаласосредоточиться на)
Отказ от ответственности:
Если вам понравилась эта статья, поделитесь, добавьте в избранное, поставьте лайк и прокомментируйте! Пожалуйста, продолжайте обращать внимание @ Опытные в эксплуатации и обслуживании, вовремя смотрите больше хороших статей!
Добро пожаловать присоединиться 「Квалифицирован в эксплуатации и обслуживании·облачный родной Настоящий тренировочный лагерь для бойцов》 ,получи больше KubeSphere、Kubernetes、облачный родной Эксплуатация и обслуживание Настоящий бой Навык。
Заявление об авторских правах