首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为启用CRI的Kubernetes静态吊舱指定码头凭据?

如何为启用CRI的Kubernetes静态吊舱指定码头凭据?
EN

Stack Overflow用户
提问于 2017-05-09 03:02:36
回答 2查看 1.3K关注 0票数 1

在启动Kubernetes集群时,我将etcd加上核心kubernetes进程-kube-代理、kube-apiserver、kube-控制器-管理器、kube-调度程序-作为静态程序从私有注册中心加载。过去,通过确保对kubelet将$HOME环境变量设置为"/root“,然后使用专用码头注册中心的凭据定义/root/. docker /config.json,这是行之有效的。

当试图运行Kubernetes 1.6 (启用CRI )时,我在kubelet日志中看到错误,表示由于没有身份验证,它无法从我的私人坞注册中心中提取暂停:3.0容器。

在kubelet命令行上设置-启用- CRI =false可以工作,但是当启用CRI时,它似乎不使用/root/..docker/config文件进行身份验证。

在启用CRI的情况下,是否有新的方法来提供加载静态吊舱所需的码头凭证?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-15 18:45:01

结果表明,Kubernetes 1.6的CRI能力存在缺陷。对于CRI,“暂停”容器(现在称为"Pod Sandbox Image“)被视为特例,因为不管您是否需要它,它都是容器运行时的”实现细节“。例如,在1.6版中,应用于其他容器的凭据,例如/root/..docker/config.json,在试图提取Pod Sandbox映像时不使用。

因此,如果您试图从私有注册表中提取此图像,则CRI逻辑不会将凭据与拉请求关联起来。现在有一个针对1.7的Kubernetes问题(#45738)来解决这个问题。

同时,一个简单的解决方法是在启动kubelet进程之前将“暂停”容器预拉到节点的本地停靠器图像缓存中。

票数 0
EN

Stack Overflow用户

发布于 2017-05-09 10:24:25

在1.6中,我设法使它与https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod中的以下菜谱一起工作

代码语言:javascript
复制
$ kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

您需要在imagePullSecrets规范的字段下指定新创建的myregistrykey作为凭证。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: foo
  namespace: awesomeapps
spec:
  containers:
    - name: foo
      image: janedoe/awesomeapp:v1
  imagePullSecrets:
    - name: myregistrykey
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43860346

复制
相关文章

相似问题

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