2016-02-19 3 views
1

У меня есть кластер кубернетов с главным узлом и 3 миньонами, у меня уже есть кластер glusterfs, каждый узел кластера кубернетов имеет установленный и работающий glusterfs-клиент. я пытаюсь запустить стручок (простой MySQL) монтажный/уаг/Lib/MySQL на GlusterFS, но я вижу:не удалось запустить контейнер с томом на glusterfs

Image: mysql:5.6 is ready, container is creating 

я бегу: kubectl получить событие я вижу:

Thu, 18 Feb 2016 10:08:01 +0100 Thu, 18 Feb 2016 10:08:01 +0100 1   mysql-9ym10   Pod         scheduled   {scheduler }    Successfully assigned mysql-9ym10 to nodeXX 
Thu, 18 Feb 2016 10:08:01 +0100 Thu, 18 Feb 2016 10:08:01 +0100 1   mysql    ReplicationController    successfulCreate {replication-controller } Created pod: mysql-9ym10 
Thu, 18 Feb 2016 10:08:02 +0100 Thu, 18 Feb 2016 10:08:12 +0100 2   mysql-9ym10   Pod         failedMount  {kubelet nodeXX} Unable to mount volumes for pod "mysql-9ym10_default": exit status 1 
Thu, 18 Feb 2016 10:08:02 +0100 Thu, 18 Feb 2016 10:08:12 +0100 2   mysql-9ym10   Pod         failedSync   {kubelet nodeXX} Error syncing pod, skipping: exit status 1 

если я запустить kubectl описать стручок MySQL-9ym10 я вижу:

Name:       mysql-9ym10 
Namespace:      default 
Image(s):      mysql:5.6 
Node:       nodeXX/nodeXX 
Labels:       app=mysql 
Status:       Pending 
Reason: 
Message: 
IP: 
Replication Controllers:  mysql (1/1 replicas created) 
Containers: 
    mysql: 
    Image:    mysql:5.6 
    State:    Waiting 
     Reason:   Image: mysql:5.6 is ready, container is creating 
    Ready:    False 
    Restart Count:  0 
Conditions: 
    Type   Status 
    Ready   False 
Events: 
    FirstSeen        LastSeen      Count From       SubobjectPath Reason   Message 
    Thu, 18 Feb 2016 10:08:01 +0100  Thu, 18 Feb 2016 10:08:01 +0100 1  {scheduler }         scheduled  Successfully assigned mysql-9ym10 to nodeXX 
    Thu, 18 Feb 2016 10:08:02 +0100  Thu, 18 Feb 2016 10:10:22 +0100 15  {kubelet nodeXX}      failedMount  Unable to mount volumes for pod "mysql-9ym10_default": exit status 1 
    Thu, 18 Feb 2016 10:08:02 +0100  Thu, 18 Feb 2016 10:10:22 +0100 15  {kubelet nodeXX}      failedSync  Error syncing pod, skipping: exit status 1 

это YAML файл для контейнера:

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: mysql 
spec: 
    replicas: 1 
    selector: 
    app: mysql 
    template: 
    metadata: 
     name: mysql 
     labels: 
     app: mysql 
    spec: 
     containers: 
     - name: mysql 
     image: mysql:5.6 
     ports: 
     - containerPort: 3306 
     env: 
      - name: MYSQL_ROOT_PASSWORD 
      value: password 
     volumeMounts: 
      - mountPath: /var/lib/mysql 
      name: glusterfsvol 
     volumes: 
     - glusterfs: 
      endpoints: glusterfs-cluster 
      path: glustervolume 
      readOnly: false 
     name: glusterfsvol 

ответ

1

У меня есть и конечная точка, которая настроена с IP-адресами glusterfs.

Я знаю опубликованную ссылку, я следил за ней, но результат на моем первом посту!

+0

У меня такая же проблема. Я даже успешно смонтировал том glusterfs на узле kubernetes вручную 'mount -t glusterfs gluster-node-ip: glustervolume/mnt', но все же он не монтируется в модуле, настроенном, как указано выше. – markop

+0

ну, через 5 минут после того, как я разместил это, мне удалось заставить его работать. Моя локальная среда kubernetes основана на бродячем развертывании (на основе Fedora23). Развертывание minikube основано на boot2docker, который основан на Tiny Linux, который, насколько мне известно, не имеет упакованного glusterfs-клиента. Таким образом, minikube не будет работать с glusterfs. – markop

1

Вначале: для использования GlusterFS вам не нужно устанавливать glusterfs-client на узле кубернетов. По умолчанию у кубернетов есть опция установки объема для glusterfs.

Чтобы использовать glusterfs с кубернетами, вам нужно вещи.

  1. рабочий сервер glusterfs. текущий объем на сервере glusterfs. Я предполагаю, что у вас есть такие. Если кто-то не создать сервер GlusterFS и начать свои объемы с помощью следующих команд

    $ gluster volume create <volume-name> replica 2 transport tcp \ 
        peer1:/directory \ 
        peer2:/directory \ 
        force 
    $ gluster volume start <vonlume-name> 
    $ sudo gluster volume info 
    
  2. , если это нормально, вам нужно kubernetes конечной точки для использования с стручком. в качестве примера конечная точка подобна этому.

    kind: Endpoints 
    apiVersion: v1 
    metadata: 
        name: glusterfs 
    subsets: 
    - addresses: 
        - ip: peer1 
        ports: 
        - port: 1 
    - addresses: 
        - ip: peer2 
        ports: 
        - port: 1 
    
  3. И на третьем горе СГФА объема в боб с конечной точкой.

     containers: 
         - name: mysql 
         image: mysql:5.6 
         ports: 
         - containerPort: 3306 
         env: 
          - name: MYSQL_ROOT_PASSWORD 
          value: password 
         volumeMounts: 
          - mountPath: /var/lib/mysql 
          name: glusterfsvol 
         volumes: 
         - glusterfs: 
          endpoints: glusterfs-cluster 
          path: <volume-name> 
         name: glusterfsvol 
    

** Путь должен совпадать с именем тома с GlusterFS.

это все должно работать нормально.

+0

У меня есть все эти конфигурации, также клиент glusterfs на миньонах. на конечной точке, я попытаюсь изменить конфигурацию, но очень похож ...я буду обновлять как можно скорее. спасибо. – bitchecker

+0

Проверьте путь с именем тома. и введите статус vloume. – sadlil

+1

, если вы вызываете gluster endpoint GLUSTER, на pod имя конечной точки должно совпадать! – bitchecker

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