在GitHub上有一个示例项目,我正在尝试将其部署到本地Kubernetes集群(k3d)上。Proto.Actor的开发人员几乎在官方文件中描述了k8s部署。问题是文档部署在Azure Kubernetes服务上,而我想部署在本地k8s集群(k3d)上。
据我所知,这些步骤如下:
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`把码头的图像推到哪里?本地k3d存储库?码头枢纽?GitHub容器注册表?
下一个问题是,Helm图表目录中的文件values.yaml由一个repository字段(这里)组成。如果我将坞映像推送到ghcr或docker,我只需将映像链接放在那里,但如果必须使用k3d本地存储库怎么办?在这种情况下我应该使用什么链接?
下一个问题是kubectl get pods如何知道它必须显示k3d集群荚,而不是我启用的?
请简要列出我必须使用k3d、Helm图表和kubectl完成的步骤,我将不胜感激。
发布于 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文档
docker login localhost:5000//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.0docker push localhost:5000/proto-cluster-tutorial:1.0.0
docker push localhost:5000/smart-bulb-simulator-app:1.0.0values.yaml image:
repository: localhost:5000/proto-cluster-tutorial
pullPolicy: IfNotPresent
tag: "1.0.0"helm install文件运行values.yaml有一件事我已经注意到了,指南的舵图没有包含一个imagePullSecrets字段,因为他们使用并在Azure上托管集群,该集群自动处理身份验证。这意味着私有存储库将无法处理场景中的图表,您必须编辑舵图以及随后的values.yaml才能使其工作。您可以阅读更多关于imagePullSecrets 这里的内容。
https://stackoverflow.com/questions/73674229
复制相似问题