2016-08-29 2 views
2

Я пытаюсь настроить среду dev с помощью Kubernetes через Minikube. Я успешно смонтировал тот же самый том в одном и том же каталоге данных на одном и том же изображении с помощью Docker для Mac, но у меня проблемы с Minikube.Не удалось подключить объем данных MySQL к Kubernetes Minikube pod

Соответствующие файлы и журналы: db-pod.yml

apiVersion: v1 
kind: Pod 
metadata: 
    creationTimestamp: null 
    labels: 
    name: msyql 
    name: db 
    namespace: default 
spec: 
    containers: 
    - name: mysqldev 
     image: mysql/mysql-server:5.6.32 
     ports: 
     - containerPort: 3306 
      hostPort: 3306 
     volumeMounts: 
     - mountPath: "/var/lib/mysql" 
      name: volumesnew 
    volumes: 
    - name: volumesnew 
     hostPath: 
     path: "/Users/eric/Volumes/mysql" 

kubectl get pods:

NAME  READY  STATUS RESTARTS AGE 
db  0/1  Error  1   3s 

kubectl logs db:

2016-08-29 20:05:55 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 
2016-08-29 20:05:55 0 [Note] mysqld (mysqld 5.6.32) starting as process 1 ... 
2016-08-29 20:05:55 1 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive 

kubectl describe pods db:

Name:  db 
Namespace:  default 
Node:  minikubevm/10.0.2.15 
Start Time:  Wed, 31 Aug 2016 07:48:39 -0700 
Labels:  name=msyql 
Status:  Running 
IP:   172.17.0.3 
Controllers: <none> 
Containers: 
    mysqldev: 
    Container ID:  docker://af0937edcd9aa00ebc278bc8be00bc37d60cbaa403c69f71bc1b378182569d3d 
    Image:   mysql/mysql-server:5.6.32 
    Image ID:  docker://sha256:0fb418d5a10c9632b7ace0f6e7f00ec2b8eb58a451ee77377954fedf6344abc5 
    Port:   3306/TCP 
    State:   Waiting 
     Reason:  CrashLoopBackOff 
    Last State:  Terminated 
     Reason:  Error 
     Exit Code:  1 
     Started:  Wed, 31 Aug 2016 07:48:42 -0700 
     Finished:  Wed, 31 Aug 2016 07:48:43 -0700 
    Ready:   False 
    Restart Count:  1 
    Environment Variables: 
     MYSQL_ROOT_PASSWORD:  test 
Conditions: 
    Type  Status 
    Initialized True 
    Ready   False 
    PodScheduled True 
Volumes: 
    volumesnew: 
    Type:  HostPath (bare host directory volume) 
    Path:  /Users/eric/Volumes/newmysql 
    default-token-il74e: 
    Type:  Secret (a volume populated by a Secret) 
    SecretName: default-token-il74e 
QoS Tier:  BestEffort 
Events: 
    FirstSeen  LastSeen  Count From   SubobjectPath   Type  Reason  Message 
    ---------  --------  ----- ----   -------------   --------  ------  ------- 
    7s  7s   1  {default-scheduler }     Normal  Scheduled  Successfully assigned db to minikubevm 
    6s  6s   1  {kubelet minikubevm} spec.containers{mysqldev}  Normal  Created  Created container with docker id 568f9112dce0 
    6s  6s   1  {kubelet minikubevm} spec.containers{mysqldev}  Normal  Started  Started container with docker id 568f9112dce0 
    6s  4s   2  {kubelet minikubevm} spec.containers{mysqldev}  Normal  Pulled  Container image "mysql/mysql-server:5.6.32" already present on machine 
    4s  4s   1  {kubelet minikubevm} spec.containers{mysqldev}  Normal  Created  Created container with docker id af0937edcd9a 
    4s  4s   1  {kubelet minikubevm} spec.containers{mysqldev}  Normal  Started  Started container with docker id af0937edcd9a 
    3s  2s   2  {kubelet minikubevm} spec.containers{mysqldev}  Warning  BackOff  Back-off restarting failed docker container 
    3s  2s   2  {kubelet minikubevm}     Warning  FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "mysqldev" with CrashLoopBackOff: "Back-off 10s restarting failed container=mysqldev pod=db_default(012d5178-6f8a-11e6-97e8-c2daf2e2520c)" 

Мне удалось установить каталог данных с хоста в контейнер в тестовом каталоге, но у меня возникли проблемы с установкой в ​​каталог данных MySQL. Кроме того, я попытался установить пустой каталог в каталог данных контейнера с соответствующими наборами переменных среды MySQL, которые в Docker для Mac позволили мне выполнить дамп SQL в новом каталоге, но я вижу те же ошибки в Minikube.

Любая мысль о том, что может быть причиной, или если я не настраиваю среду своего сообщества предпочтительным способом Kubernetes/Minikube, пожалуйста, поделитесь своими мыслями.

+0

0 Какой драйвер vm вы используете? xhyve? –

+0

@ jimmi-dyson VirtualBox –

+0

Я бы ожидал, что в журналах mysql будет больше информации о том, что вызывает его выход. Можете ли вы увеличить регистрацию для mysql? Не уверен. Кроме того, вы можете поделиться выпуском 'kubectl describe pod ', чтобы узнать, есть ли в нем что-то интересное. –

ответ

1

Я был в состоянии решить эту проблему следующим:

echo "/Users -network 192.168.99.0 -mask 255.255.255.0 -alldirs -maproot=root:wheel" | sudo tee -a /etc/exports 
sudo nfsd restart 
minikube start 
minikube ssh -- sudo umount /Users 
minikube ssh -- sudo /usr/local/etc/init.d/nfs-client start 
minikube ssh -- sudo mount 192.168.99.1:/Users /Users -o rw,async,noatime,rsize=32768,wsize=32768,proto=tcp 

Я бегу Minikube в VirtualBox. Я не знаю, если это будет работать с другими драйверами VM - xhyve и т.д.

Ссылка: https://github.com/kubernetes/minikube/issues/2

EDIT: Я должен сказать, что это работает для minikube v0.14.0.

Смежные вопросы