因此,我按照指南(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:
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:
Host Port:
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:
tmpdir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit:
kube-api-access-jdn2d:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional:
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors:
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)
任何帮助或想法都会很棒!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
exec format error通常意味着您正在使用的映像不适合您正在部署的架构。也就是说,您在 AMD64 节点上使用 ARM 映像,反之亦然。由于 Oracle 容器注册表上的所有 MySQL 映像都是 AMD64 映像,因此我猜测您的集群正在 ARM 架构上运行,例如 Ampere 实例。
您将需要在 x64 arch 实例上运行,或者找到 ARM 的映像,或者转到源代码并重建 ARM 的映像。