#mysql #kubernetes #google-kubernetes-engine #kubernetes-pod
#mysql #kubernetes #google-kubernetes-engine #kubernetes-pod
Вопрос:
У меня есть настройка Google cloud container engine. Я хотел запустить модуль mysql с внешним томом.
ReplicationController:
apiVersion: v1
kind: ReplicationController
metadata:
labels:
name: mysql
name: mysql-controller
spec:
replicas: 1
template:
metadata:
labels:
name: mysql
spec:
containers:
- image: mysql
name: mysql
ports:
- name: mysql
containerPort: 3306
hostPort: 3306
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
gcePersistentDisk:
pdName: mysql-1-disk
fsType: ext4
Когда я запускаю without
внешний том RC, MySQL работает нормально. Он прерывается с ошибкой ниже, когда я пытаюсь подключить том
Ошибка модуля Kubernetes:
Warning FailedSyncError syncing pod, skipping: failed to "StartContainer" for "mysql" with CrashLoopBackOff: "Back-off 20s restarting failed container=mysql pod=mysql-controller-4hhqs_default(eb34ff46-8784-11e6-8f12-42010af00162)"
Диск (внешний том):
mysql-1-disk
это облачный диск Google. Я попытался создать диск с помощью обоих blank disk
и image - ubuntu
. Оба завершились с одинаковой ошибкой.
Комментарии:
1. вы решили проблему? У меня точно такие же результаты при запуске mysql на GCE
Ответ №1:
Сообщения об ошибках при монтировании постоянных дисков на самом деле не описательны, с моей точки зрения. Используйте пустой диск на основе вашего файла конфигурации.
Некоторые вещи, которые нужно проверить:
- Является ли pdName точно таким же, как в вашей среде CGE
- Находится ли диск в той же зоне доступности (например, europe-west1-c), что и ваш кластер, иначе он не сможет смонтироваться.
Надеюсь, это поможет.
Ответ №2:
Проблема, с которой вы сталкиваетесь, может быть вызвана использованием RC, а не Pod для взаимодействия с постоянным диском.
Как указано в документации:
Особенностью PD является то, что они могут быть смонтированы как доступные только для чтения несколькими потребителями одновременно. Это означает, что вы можете предварительно заполнить PD своим набором данных, а затем обслуживать его параллельно из стольких модулей, сколько вам нужно. К сожалению, PDS может быть смонтирован только одним пользователем в режиме чтения-записи — одновременные записи не допускаются. Использование PD в модуле, управляемом ReplicationController, завершится ошибкой, если только PD не доступен только для чтения или количество реплик не равно 0 или 1.
В этом случае я могу предложить вам запустить MySQL с постоянными дисками, определяющими подключение к диску в файле конфигурации модуля. Пример конфигурации вы можете найти здесь .
Комментарии:
1. он использует RC с количеством реплик, равным единице, поэтому он в порядке с использованием RC. Я бы всегда предпочел RC над модулем, поскольку RC перезапускаются при отключении, модули — нет.