如何配置microk8s kubernetes以使用专用容器';在哪https://hub.docker.com/?

如何配置microk8s kubernetes以使用专用容器';在哪https://hub.docker.com/?,kubernetes,microk8s,containerd,Kubernetes,Microk8s,Containerd,让我不知道该怎么办。安全注册表部分说Kubernetes是单向的(不表示Kubernetes的方式是否适用于microk8),而microk8s在其实现中使用containerd My YAML文件包含对dockerhub上私有容器的引用 apiVersion: apps/v1 kind: Deployment metadata: name: blaw spec: replicas: 1 selector: matchLabels: app: blaw st

让我不知道该怎么办。安全注册表部分说Kubernetes是单向的(不表示Kubernetes的方式是否适用于microk8),而microk8s在其实现中使用containerd

My YAML文件包含对dockerhub上私有容器的引用

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: blaw
spec:
  replicas: 1
  selector:
    matchLabels:
      app: blaw
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: blaw
    spec:
      containers:
        - image: johngrabner/py_blaw_service:v0.3.10
          name: py-transcribe-service
当我microk8s-kubectl应用此文件并执行microk8s-kubectl描述时,我得到:

Warning  Failed     16m (x4 over 18m)     kubelet            Failed to pull image "johngrabner/py_blaw_service:v0.3.10": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/johngrabner/py_blaw_service:v0.3.10": failed to resolve reference "docker.io/johngrabner/py_blaw_service:v0.3.10": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
我已经验证了我可以通过docker pull命令从控制台下载这个repo

使用公共容器的吊舱在microk8s中工作良好

文件/var/snap/microk8s/current/args/containerd template.toml已经包含了一些可以使dockerhub工作的内容,因为公共容器可以工作。在这个文件中,我发现

  # 'plugins."io.containerd.grpc.v1.cri".registry' contains config related to the registry
  [plugins."io.containerd.grpc.v1.cri".registry]

    # 'plugins."io.containerd.grpc.v1.cri".registry.mirrors' are namespace to mirror mapping for all namespaces.
    [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
        endpoint = ["https://registry-1.docker.io", ]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:32000"]
        endpoint = ["http://localhost:32000"]
上述内容似乎与身份验证无关

在互联网上,我找到了创建用于存储凭据的秘密的说明,但这也不起作用

microk8s kubectl create secret generic regcred --from-file=.dockerconfigjson=/home/john/.docker/config.json --type=kubernetes.io/dockerconfigjson

创建机密后,您必须设置部署/pod以使用该机密来下载映像。这可以通过您提到的microk8s文档中描述的
imagePullSecrets
实现

由于您已经创建了您的机密,您只需在部署中引用它即可:

。。。
规格:
容器:
-图片:johngrabner/py_blaw_服务:v0.3.10
名称:py转录服务
你的秘密:
-姓名:regcred
...

更多阅读请查看如何

谢谢!这正是我要找的!我也是,非常感谢。