web-dev-qa-db-ja.com

ボリュームがポッドに接続またはマウントされるのを待ってタイムアウトが期限切れになりました

ベアメタルのubuntuにkubernetesをインストールします。 1つのマスターと3つのワーカーをデプロイします。そして、rookをデプロイすると、すべてが正常に機能します。しかし、wordpressをデプロイしたい場合、このエラーが発生します。

ポッド「wordpress-mysql-b78774f44-lxtfv_default(ffb4ff12-553e-11e9-a229-52540076d16c)」のボリュームをマウントできません:ボリュームが接続またはポッド「default」/「wordpress-mysql-b78774f44-lxtfv」にマウントされるのを待ってタイムアウトが期限切れになりました"。マウントされていないボリュームのリスト= [mysql-persistent-storage]。アタッチされていないボリュームのリスト= [mysql-persistent-storage default-token-nj8xw]

#kubectl describe pods wordpress-mysql-b78774f44-lxtfv

Events:
  Type     Reason            Age                    From               Message
  ----     ------            ----                   ----               -------
  Warning  FailedScheduling  7m11s (x4 over 7m18s)  default-scheduler  pod has unbound immediate PersistentVolumeClaims (repeated 3 times)
  Normal   Scheduled         7m5s                   default-scheduler  Successfully assigned default/wordpress-mysql-b78774f44-lxtfv to worker3
  Warning  FailedMount       2m46s (x2 over 5m1s)   kubelet, worker3   Unable to mount volumes for pod "wordpress-mysql-b78774f44-lxtfv_default(ffb4ff12-553e-11e9-a229-52540076d16c)": timeout expired waiting for volumes to attach or mount for pod "default"/"wordpress-mysql-b78774f44-lxtfv". list of unmounted volumes=[mysql-persistent-storage]. list of unattached volumes=[mysql-persistent-storage default-token-nj8xw]
  Normal   Pulled            107s                   kubelet, worker3   Container image "mysql:5.6" already present on machine
  Normal   Created           104s                   kubelet, worker3   Created container mysql
  Normal   Started           101s                   kubelet, worker3   Started container mysql


and my pods is running
#kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
wordpress-595685cc49-2bmzk        1/1     Running   4          15m
wordpress-mysql-b78774f44-lxtfv   1/1     Running   0          15m

私のPVとPVC

#kubectl get pv,pvc
NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                    STORAGECLASS      REASON   AGE
persistentvolume/pvc-0f6722a0-553f-11e9-a229-52540076d16c   20Gi       RWO            Delete           Bound      default/wp-pv-claim      rook-ceph-block            15m
persistentvolume/pvc-e9797517-553b-11e9-a229-52540076d16c   20Gi       RWO            Delete           Released   default/wp-pv-claim      rook-ceph-block            37m
persistentvolume/pvc-ff52a22e-553e-11e9-a229-52540076d16c   20Gi       RWO            Delete           Bound      default/mysql-pv-claim   rook-ceph-block            16m

NAME                                   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
persistentvolumeclaim/mysql-pv-claim   Bound    pvc-ff52a22e-553e-11e9-a229-52540076d16c   20Gi       RWO            rook-ceph-block   16m
persistentvolumeclaim/wp-pv-claim      Bound    pvc-0f6722a0-553f-11e9-a229-52540076d16c   20Gi       RWO   

     rook-ceph-block   15m

私のwordpress yamlファイル

# cat wordpress.yaml 
apiVersion: v1
kind: Service
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  ports:
  - port: 80
  selector:
    app: wordpress
    tier: frontend
  type: LoadBalancer
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wp-pv-claim
  labels:
    app: wordpress
spec:
  storageClassName: rook-ceph-block
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
        tier: frontend
    spec:
      containers:
      - image: wordpress:4.6.1-Apache
        name: wordpress
        env:
        - name: WORDPRESS_DB_Host
          value: wordpress-mysql
        - name: WORDPRESS_DB_PASSWORD
          value: changeme
        ports:
        - containerPort: 80
          name: wordpress
        volumeMounts:
        - name: wordpress-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: wordpress-persistent-storage
        persistentVolumeClaim:
          claimName: wp-pv-claim
and my mysql yaml file
cat mysql.yaml 
apiVersion: v1
kind: Service
metadata:
  name: wordpress-mysql
  labels:
    app: wordpress
spec:
  ports:
    - port: 3306
  selector:
    app: wordpress
    tier: mysql
  clusterIP: None
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pv-claim
  labels:
    app: wordpress
spec:
  storageClassName: rook-ceph-block
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: wordpress-mysql
  labels:
    app: wordpress
spec:
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
        tier: mysql
    spec:
      containers:
      - image: mysql:5.6
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: changeme
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: mysql-pv-claim
2
yasin lachini

展開が正常に進行したようです。表示されるエラーは、describeを実行してから2分46秒後に発生しました。これは、PV/PVCのCephプロビジョニング、またはPVCをマウントする準備ができていないその他の状況が原因である可能性があります。ただし、イベントによると、コンテナは最終的に正常にマウントされ、開始されます。すべてのポッドヘルスチェックに合格し、KubeスケジューラーはそれをREADY状態に進めます。

開始後にコンテナとマウントが正しく機能していないという証拠はありますか?

2