将Harbor Image Registry Pull Secret添加到Kubernetes / OpenShift


从下面的链接下载并以PDF格式支持本文。

theロード下载PDF指南

关门


配置了港口图像注册表。如何使用pull secret从Kubernetes / OpenShift的Harbor注册表中提取图像? Harbor是CNCF认可的项目,可帮助保存OCI图像和Helm图表。 Harbor提供了身份验证系统和RBAC,因此您可能需要为Kubernetes或OpenShift Cluster中的用户或机器人帐户添加拉密钥。

步骤1:使用docker / podman登录到Workstation的港口

首先,从Docker CLI或Podman CLI登录到Harbor注册表。例如,如果注册表在自定义端口上 5000, 在这种情况下,URL看起来像myregistry.example.com:5000。

如果港口注册处不安全。添加到不安全的注册表列表。

--- Podman ---
$ sudo vim /etc/containers/registries.conf
...
[registries.insecure]
registries = ['myregistry.example.com']

--- Docker ---
$ sudo vim /etc/docker/daemon.json
{
  "insecure-registries" : ["myregistry.example.com"]
}
$ sudo systemctl restart docker
$ docker info

Docker登录:

$ docker login myregistry.example.com
Username: jkmutai
Password:
Login Succeeded!

Podman登录:

$ docker login myregistry.example.com
Username: jkmutai
Password:
Login Succeeded!

Docker将注册表访问信息存储在 〜/ .Docker / config.json

$ cat ~/.docker/config.json

然后是Podman /run/user/UserID/containers/auth.json

$ cat /run/user/`id -u`/containers/auth.json

您可能需要将访问凭据以json格式复制到服务器 KubectlOC 命令

步骤2:将Harbor Registry Secret添加到Kubernetes / OpenShift

接下来,您需要在Kubernetes / OpenShift中将Harbor登录访问详细信息添加为秘密。

kubectl create secret generic harbor-registry-secret 
    --from-file=.dockerconfigjson=./harbor-k8s.json 
    --type=kubernetes.io/dockerconfigjson 
    -n demo

其中:

  • ./harbor-k8s.json Docker / Podman json文件的路径。请相应地更改。
  • 演示版 在其中创建秘密的名称空间的名称

确认秘密的创建。

$ oc get secrets harbor-registry-secret
NAME                     TYPE                             DATA   AGE
harbor-registry-secret   kubernetes.io/dockerconfigjson   1      30s

如果要解密添加的机密并验证该值,可以使用以下命令:

kubectl get secret harbor-registry-secret 
  --output="jsonpath={.data..dockerconfigjson}" | base64 --decode

步骤3:确保可以从Harbor注册表中的映像部署应用程序

将图像上传到Harbor Registry-首先,您需要在Harbor中创建一个项目。

$ podman pull docker.io/jmutai/kuard-amd64:blue
$ podman tag docker.io/jmutai/kuard-amd64:blue myregistry.example.com/myproject/kuard-amd64:blue
$ docker push myregistry.example.com/myproject/kuard-amd64:blue
Getting image source signatures
Copying blob bcf2f368fe23 done
Copying blob 656e9c47289e done
Copying config 1db936caa6 done
Writing manifest to image destination
Storing signatures

其中:

  • myregistry.example.com是港口注册网址
  • myproject是可以由添加的用户访问的项目

创建一个Kubernetes Pod部署清单。

$ vim kuard-pod-health.yaml
---
apiVersion: v1
kind: Pod
metadata:
  name: kuard
spec:
  imagePullSecrets:
  - name: harbor-registry-secret
  containers:
    - name: kuard
      image: myregistry.example.com/myproject/kuard-amd64:blue
      ports:
        - containerPort: 8080
          name: http
          protocol: TCP
      resources:
        requests:
          cpu: "500m"
          memory: "128Mi"
        limits:
          cpu: "500m"
          memory: "256Mi"

创建一个吊舱。

$ kubectl apply -f kuard-pod-health.yaml -n 
pod/kuard created

确认部署成功。

$ kubectl get pod -n 
NAME                          READY   STATUS    RESTARTS   AGE
kuard                         1/1     Running   0          2m18s

如果尚未创建容器,请检查事件以了解原因。

$ kubectl describe pod  

其他映像注册表指南:

使用Helm图表在Kubernetes / OpenShift上安装Harbor Image Registry

如何在OpenShift / OKD 4.x群集上允许不安全的注册表

为Harbor Registry配置Active Directory(AD)身份验证

如何将Harbor注册表与LDAP集成以进行用户身份验证


从下面的链接下载并以PDF格式支持本文。

theロード下载PDF指南

关门


Sidebar