1

Google クラウド コンテナ エンジンをセットアップしました。外部ボリュームで mysql のポッドをスピンしたかったのです。

レプリケーションコントローラー:

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

RCwithout外部ボリュームを実行すると、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-diskGoogle クラウド ディスクです。blank diskと の両方でディスクを作成してみましimage - ubuntuた。どちらも同じエラーで失敗しました。

4

2 に答える 2

0

直面している問題は、Pod ではなく RC を使用して永続ディスクとやり取りすることが原因である可能性があります。

ドキュメントに記載されているように:

PD の特徴は、複数のコンシューマーが同時に読み取り専用としてマウントできることです。これは、PD にデータセットを事前に入力し、必要な数のポッドから並行して提供できることを意味します。残念ながら、PD は読み取り/書き込みモードで単一のコンシューマによってのみマウントできます。同時書き込みは許可されていません。PD が読み取り専用であるか、レプリカ数が 0 または 1 でない限り、ReplicationController によって制御される Pod で PD を使用すると失敗します。

この場合、Pod 構成ファイルでディスク接続を定義する Persistent Disks で MySQL を実行することをお勧めします。サンプル構成はこちらにあります。

于 2016-10-04T10:29:10.777 に答える
0

永続ディスクのマウントに関するエラー メッセージは、私の観点からは、実際には説明的ではありません。構成ファイルに基づいて空のディスクを使用します。

確認事項:

  • pdName は CGE 環境とまったく同じですか?
  • ディスクはクラスターと同じアベイラビリティ ゾーン (europe-west1-c など) にありますか? そうでない場合はマウントできません。

お役に立てれば。

于 2016-10-01T12:53:26.777 に答える