Лучшая практика Docker: Docker развертывает кластерную практику etcd
Лучшая практика Docker: Docker развертывает кластерную практику etcd

Лучшая практика Docker: Docker развертывает кластерную практику etcd

2024 Практические документы по эксплуатации и обслуживанию Cloud Native, 2019 г. 99 оригинальный проект Нет. 005 Глава |Docker Серия лучших практик «2024» Нет. 005 Глава

Предисловие

Привет,добро пожаловать вКвалифицирован в эксплуатации и обслуживании

Контент, которым сегодня поделились, Docker Лучшая практика «2024» в серии документов Docker развертывать etcd Кластерный реальный бой

Карта контента

docker-cluster-etcd-mindmap
docker-cluster-etcd-mindmap

Фактическая конфигурация сервера (копия архитектуры 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

Реальная боевая среда включает информацию о версии программного обеспечения.

  • Операционная система:openEuler 22.03 LTS SP3
  • Docker:24.0.7
  • Containerd:1.6.27
  • Etcd:3.5.12

В прошлом выпуске мы опирались на coreos Официально предоставлено Docker Зеркальное отображение завершенного одного узла etcd развертывать Настоящий бой。

В этом выпуске мы продолжаем завершать процесс на основе файлов конфигурации и переменных среды. etcd кластерразвертывать Настоящий бой。

1. развертывать etcd Файл конфигурации на основе кластера

В этом разделе используются файлы конфигурации для настройки служб кластера etcd.

1.1 Создайте каталог данных etcd

Язык кода:bash
копировать
mkdir -p /data/containers/etcd/{data,config}
  • data Оглавление:предположение, Постоянные данные контейнера хранения
  • config Оглавление:предположение, Файлы конфигурации хранилища, используемые контейнерами

1.2 Создайте файл конфигурации etcd

etcd Служить Конфигурационный файл Путь:/data/containers/etcd/config/etcd.conf.yml

Содержимое каждого узла отличается и его необходимо писать отдельно.

узел 1 Содержимое файла следующее:

Язык кода:yaml
копировать
name: etcd-1
data-dir: /var/etcd
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://192.168.9.81:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://192.168.9.81:2380
initial-cluster: etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
initial-cluster-token: etcd-cluster
initial-cluster-state: new
logger: zap
log-level: info
#log-outputs: stder

узел 2 Содержимое файла следующее:

Язык кода:yaml
копировать
name: etcd-2
data-dir: /var/etcd
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://192.168.9.82:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://192.168.9.82:2380
initial-cluster: etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
initial-cluster-token: etcd-cluster
initial-cluster-state: new
logger: zap
log-level: info
#log-outputs: stderr

узел 3 Содержимое файла следующее:

Язык кода:yaml
копировать
name: etcd-3
data-dir: /var/etcd
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://192.168.9.83:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://192.168.9.83:2380
initial-cluster: etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
initial-cluster-token: etcd-cluster
initial-cluster-state: new
logger: zap
log-level: info
#log-outputs: stder

Описание специального элемента конфигурации файла конфигурации:

  • name: каждый узел etcd Название службы
  • advertise-client-urls: заполните каждый etcd Контейнер расположен там, где узел обеспечивает Служить внешнему миру. IP
  • initial-advertise-peer-urls: заполните каждый etcd Контейнер расположен там, где узел обеспечивает Служить внешнему миру. IP
  • initial-cluster: Каждый узелиспользовать имеет одинаковую конфигурацию, содержащую названия всех узлов и initial-advertise-peer-urls адрес

1.3 Создайте файл docker-compose

Язык кода:yaml
копировать
version: '3'

services:
  etcd:
    container_name: etcd
    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

1.4 Создайте и запустите службу etcd

всеузел Всеосуществлять Следующая команда,Заканчивать etcd Создание кластерных сервисов.

Язык кода:bash
копировать
cd /data/containers/etcd
docker compose up -d

Результаты успешного выполнения команды следующие: (кузел 1 Например):

Язык кода:bash
копировать
[root@docker-node-1 etcd]# docker compose up -d
[+] Running 1/2
 ⠸ Network etcd-tier  Created                                                                                                                                   0.4s
 ✔ Container etcd-s1  Started 

1.5 Проверка статуса контейнера

  • Проверять etcd Статус контейнера (кузел 1 (например)
Язык кода:bash
копировать
[root@docker-node-1 etcd]# docker compose ps -a
NAME      IMAGE                         COMMAND                  SERVICE   CREATED          STATUS          PORTS
etcd-1    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

2. развертывать etcd Кластер на основе переменных среды

В этом разделе используются переменные среды для настройки службы etcd.

2.1 Создайте каталог данных etcd

Язык кода:bash
копировать
mkdir -p /data/containers/etcd/data
  • data Оглавление:предположение, Постоянные данные контейнера хранения

2.2 Создайте файл docker-compose

Содержимое каждого узла разное,Нужно писать отдельно,vi/data/containers/etcd/docker-compose.yml

узел 1 Содержимое файла следующее:

Язык кода:yaml
копировать
version: '3'

services:
  etcd:
    container_name: etcd-s1
    image: quay.io/coreos/etcd:v3.5.12
    environment:
      - ETCD_NAME=etcd-1
      - ETCD_DATA_DIR=/var/etcd
      - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
      - ETCD_ADVERTISE_CLIENT_URLS=http://192.168.9.81:2379
      - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
      - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.9.81:2380
      - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
      - ETCD_INITIAL_CLUSTER=etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83: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

узел 2 Содержимое файла следующее:

Язык кода:yaml
копировать
version: '3'

services:
  etcd:
    container_name: etcd-s1
    image: quay.io/coreos/etcd:v3.5.12
    environment:
      - ETCD_NAME=etcd-1
      - ETCD_DATA_DIR=/var/etcd
      - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
      - ETCD_ADVERTISE_CLIENT_URLS=http://192.168.9.82:2379
      - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
      - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.9.82:2380
      - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
      - ETCD_INITIAL_CLUSTER=etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83: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

узел 3 Содержимое файла следующее:

Язык кода:yaml
копировать
version: '3'

services:
  etcd:
    container_name: etcd-s1
    image: quay.io/coreos/etcd:v3.5.12
    environment:
      - ETCD_NAME=etcd-1
      - ETCD_DATA_DIR=/var/etcd
      - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
      - ETCD_ADVERTISE_CLIENT_URLS=http://192.168.9.83:2379
      - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
      - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.9.83:2380
      - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
      - ETCD_INITIAL_CLUSTER=etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83: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

Описание специального элемента конфигурации файла конфигурации:

  • ETCD_NAME каждый узел etcd Название службы
  • ETCD_ADVERTISE_CLIENT_URLS заполните каждый etcd Контейнер расположен там, где узел обеспечивает Служить внешнему миру. IP
  • ETCD_INITIAL_ADVERTISE_PEER_URLS заполните каждый etcd Контейнер расположен там, где узел обеспечивает Служить внешнему миру. IP
  • ETCD_INITIAL_CLUSTER: одинаковая конфигурация для каждого узлаиспользовать.,Включатьвсеузелимя и ETCD_INITIAL_ADVERTISE_PEER_URLS адрес

2.3 Создайте и запустите службу etcd

всеузел Всеосуществлять Следующая команда,Заканчивать etcd Создание кластерных сервисов.

Язык кода:bash
копировать
cd /data/containers/etcd
docker compose up -d

2.4 Проверка статуса контейнера

  • Проверять etcd Статус контейнера (кузел 1 (например)
Язык кода:bash
копировать
[root@docker-node-1 etcd]# docker compose ps -a
NAME      IMAGE                         COMMAND                  SERVICE   CREATED          STATUS          PORTS
etcd-1    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

3. проверка доступности сервиса etcd

Чтобы проверить доступность службы etcd, найдите дополнительный компьютер для установки клиентского инструмента etcd для проверочного тестирования.

  • Загрузите и разархивируйте пакет
Язык кода:bash
копировать
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 для проверки конечных точек теста.
Язык кода:bash
копировать
# ./etcdctl --endpoints=192.168.9.81:2379,192.168.9.82:2379,192.168.9.83:2379 --write-out=table endpoint health
+-------------------+--------+-------------+-------+
|     ENDPOINT      | HEALTH |    TOOK     | ERROR |
+-------------------+--------+-------------+-------+
| 192.168.9.81:2379 |   true |  6.698562ms |       |
| 192.168.9.82:2379 |   true | 20.894522ms |       |
| 192.168.9.83:2379 |   true | 21.585328ms |       |
+-------------------+--------+-------------+-------+

# ./etcdctl --endpoints=192.168.9.81:2379,192.168.9.82:2379,192.168.9.83: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 | ee1780cf52566749 |  3.5.12 |   20 kB |      true |      false |         2 |         13 |                 13 |        |
| 192.168.9.82:2379 | 94e339f5d245a36b |  3.5.12 |   20 kB |     false |      false |         2 |         13 |                 13 |        |
| 192.168.9.83:2379 | 247803a54771eb27 |  3.5.12 |   20 kB |     false |      false |         2 |         13 |                 13 |        |
+-------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
  • Используйте инструмент etcdctl для проверки участников теста
Язык кода:bash
копировать
# ./etcdctl --endpoints=192.168.9.81:2379,192.168.9.82:2379,192.168.9.83:2379 --write-out=table member list
+------------------+---------+--------+--------------------------+--------------------------+------------+
|        ID        | STATUS  |  NAME  |        PEER ADDRS        |       CLIENT ADDRS       | IS LEARNER |
+------------------+---------+--------+--------------------------+--------------------------+------------+
| 247803a54771eb27 | started | etcd-3 | http://192.168.9.83:2380 | http://192.168.9.83:2379 |      false |
| 94e339f5d245a36b | started | etcd-2 | http://192.168.9.82:2380 | http://192.168.9.82:2379 |      false |
| ee1780cf52566749 | started | etcd-1 | http://192.168.9.81:2380 | http://192.168.9.81:2379 |      false |
+------------------+---------+--------+--------------------------+--------------------------+------------+
  • Используйте инструмент etcdctl для проверки чтения и записи тестовых данных.
Язык кода:bash
копировать
# Запись данных
# ./etcdctl --endpoints=192.168.9.81:2379,192.168.9.82:2379,192.168.9.83:2379 put foo bar
OK

# Чтение данных
# ./etcdctl --endpoints=192.168.9.81:2379,192.168.9.82:2379,192.168.9.83:2379 get foo
foo
bar

4. Автоматизированные сценарии оболочки

Все операции по всему тексту я скомпилировал в автоматизированные скрипты.

Описание скрипта автоматизации:

  • Поскольку проблема ошибки EOF не была решена в процессе отладки, содержимое части cat в функции не было отступом, что выглядело неприглядно, но на использование это не влияло.
  • Shell Скрипт реализует такого рода многоузел, многовариантную автоматизацию. Развертывание конфигурации затруднительно. На практике рекомендуется использовать. Ansible Автоматизировать.

4.1 Режим профиля

писатьразвертывать Скрипт deploy-etcd-cluser-conf.sh

Язык кода:bash
копировать
#!/bin/bash
# author:@Квалифицирован в эксплуатации и обслуживании
set -e

# настраивать etcd Название службы, необходимо изменить
etcd_name=${1:-"etcd-1"}

# настраивать etcd Служитьиностранный IP, необходимо изменить (заполнить etcd Контейнер расположен там, где узел обеспечивает Служить внешнему миру. IP)
etcd_client_ip=${2:-"0.0.0.0"}

# настраивать etcd Информация о кластере инициализации должна быть изменена.
etcd_initial_cluster=${3:-"etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380"}

# настраивать containers Базовый каталог, дополнительная модификация
docker_container_dir=${4:-"/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://${etcd_client_ip}:2379
listen-peer-urls: http://0.0.0.0:2380
initial-advertise-peer-urls: http://${etcd_client_ip}:2380
initial-cluster: ${etcd_initial_cluster}
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

использовать Скриптразвертывать etcd кластер.

  • узел 1 осуществлять
Язык кода:bash
копировать
./deploy-etcd-cluster-conf.sh etcd-1 192.168.9.81 etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
  • узел 2 осуществлять
Язык кода:bash
копировать
./deploy-etcd-cluster-conf.sh etcd-2 192.168.9.82 etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
  • узел 3 осуществлять
Язык кода:bash
копировать
./deploy-etcd-cluster-conf.sh etcd-3 192.168.9.83 etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380

4.2 Режим переменных среды

писатьразвертывать Скрипт deploy-etcd-cluster-env.sh

Язык кода:bash
копировать
#!/bin/bash
# author:@Квалифицирован в эксплуатации и обслуживании
set -e

# настраивать etcd Название службы, необходимо изменить
etcd_name=${1:-"etcd-1"}

# настраивать etcd Служитьиностранный IP, необходимо изменить (заполнить etcd Контейнер расположен там, где узел обеспечивает Служить внешнему миру. IP)
etcd_client_ip=${2:-"0.0.0.0"}

# настраивать etcd Информация о кластере инициализации должна быть изменена.
etcd_initial_cluster=${3:-"etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380"}

# настраивать containers Базовый каталог, дополнительная модификация
docker_container_dir=${4:-"/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://${etcd_client_ip}:2379
      - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
      - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://${etcd_client_ip}:2380
      - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
      - ETCD_INITIAL_CLUSTER=${etcd_initial_cluster}
      - 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

использовать Скриптразвертывать etcd кластер.

  • узел 1 осуществлять
Язык кода:bash
копировать
./deploy-etcd-cluster-env.sh etcd-1 192.168.9.81 etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
  • узел 2 осуществлять
Язык кода:bash
копировать
./deploy-etcd-cluster-env.sh etcd-2 192.168.9.82 etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380
  • узел 3 осуществлять
Язык кода:bash
копировать
./deploy-etcd-cluster-env.sh etcd-3 192.168.9.83 etcd-1=http://192.168.9.81:2380,etcd-2=http://192.168.9.82:2380,etcd-3=http://192.168.9.83:2380

5. Упражнения после занятий

На основе того, что вы узнали из этой статьи, пожалуйста, выполните следующие практические задания.

  1. руководстворазвертыватьна основе Конфигурационный файлиз etcd кластер
  2. Ручная развертывание etcd на основе кластера переменных окружения
  3. использоватьавтоматизация Скриптразвертыватьна основе Конфигурационный файлиз etcd кластер
  4. использоватьавтоматизация Скриптразвертыватьна основепеременные средыиз etcd кластер
  5. Проверка тестирования с помощью командной строки etcd кластер Служить наличие и статус

6. Резюме

В этой статье представлена ​​информация, основанная на coreos Официально предоставлено etcd зеркалоразвертывать etcd Подробный процесс и меры предосторожности для кластерных служб. Основное содержание резюмируется следующим образом:

  • Реализовано на основе файла конфигурации etcd кластер Служитьразвертывать
  • Реализовано на основе переменных среды etcd кластер Служитьразвертывать
  • На основе файлов конфигурации и переменных среды. etcd кластер Служитьавтоматизацияразвертывать Скриптписать
  • etcd кластер Служить Доступностьпроверятьтест

Получите практическое видео из этой статьи.(пожалуйста, обрати внимание,Асинхронный выпуск документального видео,пожалуйста, сначаласосредоточиться на)

Отказ от ответственности:

  • Уровень автора ограничен,Несмотря на то, что много разпроверятьи проверь,Мы прилагаем все усилия для обеспечения точности содержания.,Однако могут быть и пропуски。Пожалуйста, дайте свой совет экспертам отрасли.。
  • Содержимое, описанное в этой статье, доступно только через Настоящий бойсредапроверятьтест,Читатели могут учиться и извлекать уроки из,ноКатегорически запрещено использовать непосредственно в производственной среде.Автор не несет ответственности за любые проблемы, возникшие в связи с этим.

Заключение

Если вам понравилась эта статья, поделитесь, добавьте в избранное, поставьте лайк и прокомментируйте! Пожалуйста, продолжайте обращать внимание @ Опытные в эксплуатации и обслуживании, вовремя смотрите больше хороших статей!

Добро пожаловать присоединиться «Навыки эксплуатации и технического обслуживания · Практический учебный лагерь Cloud Native» , получи больше Практические навыки эксплуатации и обслуживания KubeSphere, Kubernetes и облачных технологий.

Заявление об авторских правах

  • Весь контент принадлежит оригиналу,Спасибо, что прочитали и собрали,Пожалуйста, свяжитесь с нами для получения разрешения на перепечатку. Воспроизведение без разрешения запрещено.
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose