Jadi, saya mengikuti panduan (https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-installation-kubectl.html) untuk memasang kluster MySql pada kluster Kubernetes Ubuntu Server 22.04.
Saya telah berjaya menjalankan arahan berikut untuk mengimport fail penggunaan yaml yang diperlukan
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
Kini apabila saya menjalankan perintah deploy, pod terus dimulakan semula.
kubectl get deployment mysql-operator --namespace mysql-operator
Ini adalah output log (saya mendapat ralat)
kubectl logs mysql-operator-755b988dd9-jn7f6 --namespace=mysql-operator exec /usr/bin/mysqlsh: exec format error
Ini penerangannya:
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)
Sebarang bantuan atau idea pasti bagus!
Anda boleh lihat ini.
Alat sumber terbuka yang dipanggil kubeblocks untuk mengatur dan mengurus MySQL pada Kubernetes.
Saya rasa ia boleh menyelesaikan masalah anda.
exec format error
Biasanya bermakna imej yang anda gunakan tidak sesuai untuk seni bina yang anda gunakan. Iaitu, anda menggunakan imej ARM pada nod AMD64 dan sebaliknya.Memandangkan semua imej MySQL pada Oracle Container Registry ialah imej AMD64, saya rasa kluster anda berjalan pada seni bina ARM, seperti contoh Ampere.
Anda perlu menjalankan contoh gerbang x64, atau mencari imej untuk ARM, atau pergi ke sumber dan bina semula imej untuk ARM.