首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >k8s:使k8s可以访问本地图像

k8s:使k8s可以访问本地图像
EN

Stack Overflow用户
提问于 2020-01-28 08:13:10
回答 2查看 1.2K关注 0票数 2

我刚刚安装了一个k8s集群(k3d)。

我只是在玩这个游戏,我遇到了第一个新手问题:如何加载本地创建的映像。

我的意思是,我刚刚创建了一个标记为quarkus/feedly:v1的码头形象。

  1. 如何使k8s集群能够访问它?
  2. 哪个是默认的k8s容器运行时?
  3. 是否存在与我的k8s集群和本地码头的交互?我的意思是,每个k8s节点是否安装了一个docker/rkt/运行时?
  4. 我可以在kubernetes内部创建一个码头注册中心,作为舱单吗?我怎么能让kubernetes进入它呢?

我已经部署了我的舱单,我得到了这些事件:

未能提取图像“quarkus/feedly:0.0.1-快照”:rpc错误:代码=未知desc =未能提取和解压缩图像“docker.io/quarkus/feedly:0.0.1-快照”:未能解析引用“docker.io/quarkus/feedly:0.0.1-快照”:拉访问被拒绝,存储库不存在或可能需要授权:服务器消息: insufficient_scope:授权失败

我知道这是一个正常的错误,因为夸克注册表不存在。

那边有帮助代码吗?

EN

回答 2

Stack Overflow用户

发布于 2020-01-28 08:41:25

以下是一些提示:

  1. 若要通过k8s群集访问映像,需要使用可从群集节点访问的注册表。因此,要么在停靠中心上创建一个帐户并使用这个帐户,要么安装一个本地映像注册表并使用它。
  2. Docker是大多数k8s发行版使用的默认容器运行时。但是,您可以使用任何与OCI兼容的运行时(例如容器)。rkt不再是一个活的项目,所以我建议不要使用它。
  3. 这取决于您使用的k8s发行版。无论如何,集群上的每个节点都需要在集群上安装一个容器运行时。这是强制性的。
  4. 将Docker注册中心部署为kubernetes资源可能不是一个好主意,因为您必须进行大量配置才能使其工作。但是,最好的解决方案是在一个节点内部署一个停靠器注册中心,然后使用节点IP调用它。在官方医生中有一个配置示例。顺便说一句,Docker提供了一个注册中心作为码头形象,所以安装非常简单。

希望这能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2020-12-24 19:33:13

如果您正在使用k3d,而且这只是为了玩(不是打算生产),并且出于任何原因不想使用许多容器注册中心中的任何一个,例如:

可以通过在registries.yaml中指定注册中心来添加注册中心。

代码语言:javascript
复制
k3d cluster create mycluster --volume "/home/YOU/my-registries.yaml:/etc/rancher/k3s/registries.yaml"

并在本地使用docker创建您自己的注册表:

代码语言:javascript
复制
docker volume create local_registry
docker container run -d --name registry.localhost -v local_registry:/var/lib/registry --restart always -p 5000:5000 registry:2

注意,它所做的是使用此图像创建注册表:

来自DockerHub‍♂️,这是您避免使用的码头注册中心之一。

在这里,您可以找到关于如何设置它的更多信息:https://k3d.io/usage/guides/registries/

最后,请记住,当您从私有注册表获取图像时,您必须告诉K8s您的私有注册表的身份验证信息,以便它可以下载该图像.否则,它将给您带来以下错误:

拒绝...pull访问,存储库不存在或可能需要授权:服务器消息: insufficient_scope:授权失败

您可以在这里找到更多关于如何设置它的文档:

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

https://stackoverflow.com/questions/59944531

复制
相关文章

相似问题

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