K8S在默认情况下只能拉取Harbor仓库中的公有镜像,拉取私有镜像会报错:ErrImagePullImagePullBackOff,如下图:
在这里插入图片描述

出现这种问题,一般有两种解决办法:
1)到 Harbor 仓库中把该镜像的项目设置成公开权限
2)创建认证登录秘钥,在拉取镜像时带上该秘钥

一、创建秘钥

1)先在服务器上登录 Harbor 仓库:

登录Harbor
docker login -u admin -p Harbor12345 192.168.81.84

在这里插入图片描述

2)查看登录的秘钥数据:

登录成功后会在当前用户下生成 .docker/config.json 文件
cat ~/.docker/config.json

在这里插入图片描述

再对上面的 config.json 进行base64加密
cat ~/.docker/config.json |base64 -w 0

在这里插入图片描述

3)创建 secret.yaml 文件:

apiVersion: v1
kind: Secret
metadata:
  name: login
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJ0Y2xvdWQuaHViIjogewoJCQkiYXV0aCI6ICJZV1J0YVc0NlNHRnlZbTl5TVRJek5EVT0iCgkJfQoJfSwKCSJIdHRwSGVhZGVycyI6IHsKCQkiVXNlci1BZ2VudCI6ICJEb2NrZXItQ2xpZW50LzE3LjA5LjAtY2UgKGxpbnV4KSIKCX0KfQ==

创建对象
kubectl create -f secret.yaml

在这里插入图片描述
在这里插入图片描述

4)创建应用,拉取私有镜像:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-dpm
spec:
  replicas: 2
  selector:
    matchLabels: # 注:与RC不同
      app: tomcat
  template:
    metadata:
      labels: # Pod副本拥有的标签,对应RC的Selector
        app: tomcat
        version: v1
    spec:
      containers:
      - name: tomcat
        #image: tomcat:8.0.52-alpine
        image: tcloud.hub/kstest/tomcat:7.0-jre8-alpine-tc
        imagePullPolicy: Always
        ports:
        - containerPort: 8080 # 容器应用监听的端口号
          hostPort: 8088
      imagePullSecrets:
      - name: login

注:需要在创建容器时指定 imagePullSecrets 指标,指定刚才创建的秘钥

GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 13 天前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 13 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐