我希望在 aws 上使用 kubernetes 部署一个 dockerized 服务。为此,我使用了最近发布的带有 AWS Fargate 功能的 AWS EKS。该服务的 docker 镜像存储在 github 上的一个私有包中。
为了部署我的服务,我使用了一个包含机密、部署和服务的 kubernetes 清单文件。
在 minikube 上使用 kubectl 进行本地部署时,部署 pod 成功从私有 github 包中拉取镜像。我成功复制了访问私有 dockerhub 注册表的过程。
然后我将 kubectl 配置为连接到我的 eks 集群。在应用清单文件时,我在拉取表单 github 包时获得部署 pod 的 ImagePullBackOff 状态,而从 dockerhub 拉取时它工作正常。manifest文件的区别如下:
为 github 包生成秘密:
kubectl create secret docker-registry mySecret --dry-run=true --docker-server=https://docker.pkg.github.com --docker-username=myGithubUsername --docker-password=myGithubAccessToken -o yaml
Run Code Online (Sandbox Code Playgroud)
为 dockerhub 生成秘密:
kubectl create secret docker-registry mySecret --dry-run=true --docker-server=https://index.docker.io/v1/ --docker-username=myDockerhubUsername --docker-password=myDockerhubPassword -o yaml
Run Code Online (Sandbox Code Playgroud)
部署规范参考如下:
spec:
containers:
# when pulling from …Run Code Online (Sandbox Code Playgroud) amazon-web-services docker kubernetes aws-fargate amazon-eks