首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用k3d的本地Kubernetes部署-我应该把码头映像推到哪里?

使用k3d的本地Kubernetes部署-我应该把码头映像推到哪里?
EN

Stack Overflow用户
提问于 2022-09-10 18:20:10
回答 1查看 132关注 0票数 0

GitHub上有一个示例项目,我正在尝试将其部署到本地Kubernetes集群(k3d)上。Proto.Actor的开发人员几乎在官方文件中描述了k8s部署。问题是文档部署在Azure Kubernetes服务上,而我想部署在本地k8s集群(k3d)上。

据我所知,这些步骤如下:

  1. 为解决方案中的两个项目构建docker映像--我能够执行该步骤
代码语言:javascript
复制
docker build -f ./ProtoClusterTutorial/Dockerfile . -t proto-cluster-tutorial:1.0.0`
docker build -f ./SmartBulbSimulatorApp/Dockerfile . -t smart-bulb-simulator-app:1.0.0`
  1. 将码头映像推入存储库

把码头的图像推到哪里?本地k3d存储库?码头枢纽?GitHub容器注册表?

下一个问题是,Helm图表目录中的文件values.yaml由一个repository字段(这里)组成。如果我将坞映像推送到ghcr或docker,我只需将映像链接放在那里,但如果必须使用k3d本地存储库怎么办?在这种情况下我应该使用什么链接?

下一个问题是kubectl get pods如何知道它必须显示k3d集群荚,而不是我启用的?

请简要列出我必须使用k3d、Helm图表和kubectl完成的步骤,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-10 20:12:37

将图像推送到何处并不重要,只要它是OCI分布规格的有效实现(一个有效的容器注册表)。您列出的所有注册表选项都可以工作,只需选择适合您需要的选项即可。

对于values.yaml文件,repository字段是存储库的url,这取决于您决定使用哪个容器注册表(docker.io用于Docker,ghcr.io用于Github容器注册表,等等)。请检查您所选择的容器注册表的文档,以了解有关设置存储库、构建、推送和拖动的具体说明。

kubectl从一个配置文件中获取它的配置,该文件可以包含多个集群。k3d安装脚本很可能将新集群作为一个条目添加到配置文件中,并将其设置为kubectl的新上下文。

回到你的问题上。一个更简单的解决方案可能是手动导入k3d中的图像,如注意到的在这个答案中。我自己还没有使用过k3d,所以我不能保证这个方法会起作用,但这似乎是一种简单得多的方法,可以为您节省很多麻烦。

但是,如果您想了解更多关于容器存储库、helm和k8s的知识,那么下面是一个localhost:5000存储库的示例场景,我强烈建议您在每一步中检查相关的docker/helm/kubernetes文档

  1. 登录到您的注册表
代码语言:javascript
复制
docker login localhost:5000
  1. 建立图像
代码语言:javascript
复制
//Note how the image tag includes the repository url where they'll be pushed to
docker build -f ./ProtoClusterTutorial/Dockerfile . -t localhost:5000/proto-cluster-tutorial:1.0.0
docker build -f ./SmartBulbSimulatorApp/Dockerfile . -t localhost:5000/smart-bulb-simulator-app:1.0.0
  1. 推送图像
代码语言:javascript
复制
docker push localhost:5000/proto-cluster-tutorial:1.0.0
docker push localhost:5000/smart-bulb-simulator-app:1.0.0
  1. 编辑values.yaml
代码语言:javascript
复制
  image:
    repository: localhost:5000/proto-cluster-tutorial
    pullPolicy: IfNotPresent
    tag: "1.0.0"
  1. 使用修改后的helm install文件运行values.yaml

有一件事我已经注意到了,指南的舵图没有包含一个imagePullSecrets字段,因为他们使用并在Azure上托管集群,该集群自动处理身份验证。这意味着私有存储库将无法处理场景中的图表,您必须编辑舵图以及随后的values.yaml才能使其工作。您可以阅读更多关于imagePullSecrets 这里的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73674229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档