2016-09-21 1 views
0

J'essaye de monter un volume RDB ceph dans un pod créé par kubernetes sous CoreOS.Monter les volumes RDB dans kubernetes + coreos

  • la version CoreOS est beta (1153.4.0)
  • la version Hyperkube est v1.3.7+coreos.0
  • version CEPH est jewel

est d'utiliser ce POD:

{ 
    "apiVersion": "v1", 
    "kind": "Pod", 
    "metadata": { 
    "name": "rbd2" 
    }, 
    "spec": { 
    "containers": [ 
     { 
     "name": "rbd-rw", 
     "image": "nginx", 
     "volumeMounts": [ 
      { 
      "mountPath": "/mnt/rbd", 
      "name": "rbdpd" 
      } 
     ] 
     } 
    ], 
    "volumes": [ 
     { 
     "name": "rbdpd", 
     "rbd": { 
      "monitors": [ 
      "10.203.69.254" 
      ], 
      "pool": "rbd", 
      "image": "foo", 
      "user": "admin", 
      "secretRef": { 
      "name": "ceph-secret" 
      }, 
      "fsType": "ext4", 
      "readOnly": true 
     } 
     } 
    ] 
    } 
} 

Si je commence ce pod il est créé mais rester en statut: ContainerCreating

Le problème est que le module ne semble pas être en mesure de créer le périphérique rbd.

Si je me connecte au noeud sur lequel le pod a été déployé et que vous créez le périphérique rbd (sur l'hôte) avec la commande rbdmap, le périphérique est créé et le module peut monter le volume. Ensuite, l'état du pod passe à Running

Si je supprime le pod, le périphérique rbd est automatiquement supprimé.

Pour résumer, quel peut être le problème qui empêche kubernetes de créer le périphérique rbd.

Répondre

1

Si vous utilisez le script CoreOS kubelet-wrapper pour lancer le kubelet, vous devriez pouvoir utiliser les périphériques rbd en ajoutant quelques points de montage supplémentaires.

Un remplacement exemple des RKT_OPTS pour l'kubelet-emballage:

[Service] 
Environment="RKT_OPTS=--volume modprobe,kind=host,source=/usr/sbin/modprobe \ 
--mount volume=modprobe,target=/usr/sbin/modprobe \ 
--volume lib-modules,kind=host,source=/lib/modules \ 
--mount volume=lib-modules,target=/lib/modules \ 
Environment=KUBELET_VERSION=v1.3.7_coreos.0 
... 

Source: kubelet-wrapper rbd docs.