簡體   English   中英

無法使用外部卷在kubernetes中運行mysql pod

[英]Unable to run mysql pod in kubernetes with external volume

我有谷歌雲容器引擎設置。 我想用外部音量旋轉mysql的pod。

ReplicationController:

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

當我在without外部卷的without運行RC時,MySQL工作正常。 當我嘗試附加音量時,它打破了以下錯誤

Kubernetes POD錯誤:

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-disk是google雲盤。 我嘗試用blank diskimage - ubuntu創建磁盤image - ubuntu 兩個都失敗了同樣的錯誤。

從我的角度來看,安裝永久磁盤的錯誤消息實際上並不具有描述性。 根據配置文件使用空白磁盤。

有些事要檢查:

  • pdName是否與CGE環境中的完全相同
  • 磁盤是否與您的集群在同一可用區(例如,europe-west1-c)中,否則無法裝入。

希望這可以幫助。

您可能遇到的問題可能是使用RC而不是Pod與永久磁盤進行交互。

正如文檔中提到的那樣:

PD的一個特征是它們可以同時由多個消費者以只讀方式安裝。 這意味着您可以使用數據集預先填充PD,然后根據需要從多個pod中並行提供。 不幸的是,PD只能由一個消費者以讀寫模式安裝 - 不允許同時寫入。 除非PD是只讀的或副本計數為0或1,否則在由ReplicationController控制的pod上使用PD將失敗。

在這種情況下,我可能會建議您使用Persistent Disks運行MySQL,以定義Pod配置文件中的磁盤連接。 您可以在此處找到示例配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM