首頁  >  問答  >  主體

Kubernetes中安裝mysql-operator失敗

因此,我按照指南(https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-installation-kubectl.html)在 Kubernetes Ubuntu Server 22.04 叢集上安裝 MySql 叢集。

我已成功執行以下命令來導入所需的 yaml 部署檔案

kubectl apply -f https://raw.githubusercontent.com/mysql/mysql-operator/trunk/deploy/deploy-crds.yaml
kubectl apply -f https://raw.githubusercontent.com/mysql/mysql-operator/trunk/deploy/deploy-operator.yaml

現在,當我執行部署指令時,pod 會不斷重新啟動。

kubectl get deployment mysql-operator --namespace mysql-operator

這是日誌的輸出(我收到錯誤)

kubectl logs mysql-operator-755b988dd9-jn7f6 --namespace=mysql-operator
exec /usr/bin/mysqlsh: exec format error

這是描述:

kubectl describe pod mysql-operator-755b988dd9-jn7f6 --namespace=mysql-operator
Name:             mysql-operator-755b988dd9-jn7f6
Namespace:        mysql-operator
Priority:         0
Service Account:  mysql-operator-sa
Node:             mnetk8s-node-a1/10.30.0.11
Start Time:       Wed, 07 Jun 2023 22:52:40 +0100
Labels:           name=mysql-operator
                  pod-template-hash=755b988dd9
Annotations:      <none>
Status:           Running
IP:               10.244.3.6
IPs:
  IP:           10.244.3.6
Controlled By:  ReplicaSet/mysql-operator-755b988dd9
Containers:
  mysql-operator:
    Container ID:  docker://785da7db660ae71ad09e1d6ecf7672f68fbbfbf1e03b64b4619bde188c7a250f
    Image:         container-registry.oracle.com/mysql/community-operator:8.0.33-2.0.10
    Image ID:      docker-pullable://container-registry.oracle.com/mysql/community-operator@sha256:9c411c679b416b7d4bce4e14f65b311105429d25c3183f864fdd9baec8d5647f
    Port:          <none>
    Host Port:     <none>
    Args:
      mysqlsh
      --log-level=@INFO
      --pym
      mysqloperator
      operator
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Wed, 07 Jun 2023 23:34:29 +0100
      Finished:     Wed, 07 Jun 2023 23:34:29 +0100
    Ready:          False
    Restart Count:  13
    Readiness:      exec [cat /tmp/mysql-operator-ready] delay=1s timeout=1s period=3s #success=1 #failure=3
    Environment:
      MYSQLSH_USER_CONFIG_HOME:                 /mysqlsh
      MYSQLSH_CREDENTIAL_STORE_SAVE_PASSWORDS:  never
    Mounts:
      /mysqlsh from mysqlsh-home (rw)
      /tmp from tmpdir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-jdn2d (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  mysqlsh-home:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  tmpdir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  kube-api-access-jdn2d:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  46m                  default-scheduler  Successfully assigned mysql-operator/mysql-operator-755b988dd9-jn7f6 to mnetk8s-node-a1
  Normal   Pulled     45m (x5 over 46m)    kubelet            Container image "container-registry.oracle.com/mysql/community-operator:8.0.33-2.0.10" already present on machine
  Normal   Created    45m (x5 over 46m)    kubelet            Created container mysql-operator
  Normal   Started    45m (x5 over 46m)    kubelet            Started container mysql-operator
  Warning  BackOff    97s (x221 over 46m)  kubelet            Back-off restarting failed container mysql-operator in pod mysql-operator-755b988dd9-jn7f6_mysql-operator(9e7f8c17-4fdd-4f98-a074-d2112019b28e)

任何幫助或想法都會很棒!

P粉951914381P粉951914381203 天前423

全部回覆(2)我來回復

  • P粉842215006

    P粉8422150062024-03-30 17:58:42

    你可以看看這個。

    一個名為 kubeblocks 的開源工具,用於在 Kubernetes 上部署和管理 MySQL。

    我認為它可以解決您的問題。

    回覆
    0
  • P粉176980522

    P粉1769805222024-03-30 12:12:08

    exec format error 通常表示您正在使用的映像不適合您正在部署的架構。也就是說,您在 AMD64 節點上使用 ARM 映像,反之亦然。

    由於 Oracle 容器註冊表上的所有 MySQL 映像都是 AMD64 映像,因此我猜測您的叢集正在 ARM 架構上運行,例如 Ampere 實例。

    您將需要在 x64 arch 實例上運行,或找到 ARM 的映像,或前往原始程式碼並重建 ARM 的映像。

    回覆
    0
  • 取消回覆