【问题标题】:How do I pull a Github (ghcr.io) from Minikube?如何从 Minikube 拉取 Github (ghcr.io)?
【发布时间】:2022-12-20 12:28:19
【问题描述】:

我跑

docker pull ghcr.io/.../test-service

一切正常,但是,当我尝试在部署中使用它并将部署应用于 Minikube 实例时,我得到......

Warning  Failed     14s (x4 over 93s)  kubelet            Error: ErrImagePull
Normal   BackOff    1s (x6 over 92s)   kubelet            Back-off pulling image "ghcr.io/.../test-service:latest"
Warning  Failed     1s (x6 over 92s)   kubelet            Error: ImagePullBackOff

如何配置 Minikube 以使用我的 Github PAT?

我的部署看起来像这样......

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-app
  namespace: foo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-app
      version: v1
  template:
    metadata:
      labels:
        app: test-app
        version: v1
    spec:
      serviceAccountName: test-app
      containers:
      - image: ghcr.io/.../test-service:latest
        imagePullPolicy: Always
        name: test-app
        ports:
        - containerPort: 8000

【问题讨论】:

    标签: github kubernetes minikube ghcr


    【解决方案1】:

    这是因为您没有创建 docker registry secret。为此,您可以关注https://dev.to/asizikov/using-github-container-registry-with-kubernetes-38fb

    【讨论】:

      【解决方案2】:

      另一种更简单的方法是将 registry-creds 插件添加到 Minikube

          $ minikube addons configure registry-creds
          # setup ghcr.io with your github username and PAT (Personal Access Token) token
          $ minikube addons enable registry-creds
      

      然后您可以将 github 容器注册凭证引用为 dpr-secret,如下面的部署示例所示

      # deployment.yml
      
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: b2b-integration-api 
        labels:
          app: api-app
        namespace: default
      
      spec:
        template:
          metadata:
            name: b2b-integration-api-pods 
            labels:
              app: api-app 
              tier: api-layer 
          spec:
            containers:
              - name: b2b-integration-api 
                image: ghcr.io/<your github user or org>/<image>:<version>
                imagePullPolicy: IfNotPresent
                ports:
                - containerPort: 80
            imagePullSecrets:  
              - name: dpr-secret 
        replicas: 2
        selector:
          matchLabels:
            tier: api-layer 
      

      【讨论】:

        猜你喜欢
        • 2021-11-30
        • 2023-04-03
        • 2011-12-11
        • 2022-01-19
        • 1970-01-01
        • 2018-06-04
        • 2021-11-22
        • 2021-11-02
        • 1970-01-01
        相关资源
        最近更新 更多