我正在尝试将一个用 Golang 编写的简单 REST API 部署到 AWS EKS。我使用 Terraform 在 AWS 上创建了一个 EKS 集群,并将 AWS 负载均衡器控制器 Helm 图表应用于它。集群中的所有资源如下所示:NAMESPACE NAME READY STATUS RESTARTS AGEkube-system pod/aws-load-balancer-controller-5947f7c854-fgwk2 1/1 Running 0 75mkube-system pod/aws-load-balancer-controller-5947f7c854-gkttb 1/1 Running 0 75mkube-system pod/aws-node-dfc7r 1/1 Running 0 120mkube-system pod/aws-node-hpn4z 1/1 Running 0 120mkube-system pod/aws-node-s6mng 1/1 Running 0 120mkube-system pod/coredns-66cb55d4f4-5l7vm 1/1 Running 0 127mkube-system pod/coredns-66cb55d4f4-frk6p 1/1 Running 0 127mkube-system pod/kube-proxy-6ndf5 1/1 Running 0 120mkube-system pod/kube-proxy-s95qk 1/1 Running 0 120mkube-system pod/kube-proxy-vdrdd 1/1 Running 0 120mNAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEdefault service/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 127mkube-system service/aws-load-balancer-webhook-service ClusterIP 10.100.202.90 <none> 443/TCP 75mkube-system service/kube-dns ClusterIP 10.100.0.10 <none> 53/UDP,53/TCP 127m我可以使用 Go 和 Docker 在本地运行应用程序。但是在 AWS EKS 上发布这个总是抛出CrashLoopBackOff.
2 回答
慕莱坞森
选项A:使用
选项B:设置
TA贡献1810条经验 获得超4个赞
将其发布为社区 wiki 以获得更好的可见性。随意扩展它。
感谢@David Maze,他指出了解决方案。这里有一篇文章“从 Mac M1 (ARM) 构建与 Intel64 兼容的 Docker 映像”(作者 Beppe Catanese )。
This article很好地描述了潜在的问题。
您正在 ARM 架构 (Mac M1) 上开发/构建,但您将 docker 映像部署到基于 x86-64 架构的 Kubernetes 集群。
解决方案:
选项A:使用buildx
Buildx是一个 Docker 插件,除其他功能外,它还允许为各种目标平台构建图像。
$ docker buildx build --platform linux/amd64 -t myapp .
选项B:设置DOCKER_DEFAULT_PLATFORM
DOCKER_DEFAULT_PLATFORM 环境变量允许为采用 --platform 标志的命令设置默认平台。
export DOCKER_DEFAULT_PLATFORM=linux/amd64
神不在的星期二
TA贡献1963条经验 获得超6个赞
CrashloopBackOff 意味着您有一个 pod 启动、崩溃、再次启动,然后再次崩溃。
也许错误来自应用程序本身,它无法连接到数据库,redis,......
- 2 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消