Criação de registros de imagens privadas
Para a maioria das implementações do Red Hat OpenShift, usar um registro público como "Quay.io" ou "DockerHub" atende às necessidades da maioria dos clientes. No entanto, há momentos em que um cliente pode querer hospedar suas próprias imagens privadas ou personalizadas.
Este procedimento documenta a criação de um registro de imagem privado que é apoiado por um volume persistente fornecido pelo Trident e NetApp ONTAP.
|
|
O Trident Protect requer um registro para hospedar as imagens exigidas pelos contêineres Astra . A seção a seguir descreve as etapas para configurar um registro privado no cluster Red Hat OpenShift e enviar as imagens necessárias para dar suporte à instalação do Trident Protect. |
Criando um registro de imagem privado
-
Remova a anotação padrão da classe de armazenamento padrão atual e anote a classe de armazenamento apoiada pelo Trident como padrão para o cluster OpenShift.
[netapp-user@rhel7 ~]$ oc patch storageclass thin -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}' storageclass.storage.k8s.io/thin patched [netapp-user@rhel7 ~]$ oc patch storageclass ocp-trident -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}' storageclass.storage.k8s.io/ocp-trident patched -
Edite o operador imageregistry inserindo os seguintes parâmetros de armazenamento no
specseção.[netapp-user@rhel7 ~]$ oc edit configs.imageregistry.operator.openshift.io storage: pvc: claim: -
Insira os seguintes parâmetros no
specseção para criar uma rota OpenShift com um nome de host personalizado. Salvar e sair.routes: - hostname: astra-registry.apps.ocp-vmw.cie.netapp.com name: netapp-astra-routeA configuração de rota acima é usada quando você deseja um nome de host personalizado para sua rota. Se você deseja que o OpenShift crie uma rota com um nome de host padrão, você pode adicionar os seguintes parâmetros ao specseção:defaultRoute: true. -
Edite o operador imageregistry novamente e altere o estado de gerenciamento do operador para
Managedestado. Salvar e sair.oc edit configs.imageregistry/cluster managementState: Managed
-
Se todos os pré-requisitos forem atendidos, PVCs, pods e serviços serão criados para o registro de imagem privada. Em poucos minutos, o registro deverá estar ativo.
[netapp-user@rhel7 ~]$oc get all -n openshift-image-registry NAME READY STATUS RESTARTS AGE pod/cluster-image-registry-operator-74f6d954b6-rb7zr 1/1 Running 3 90d pod/image-pruner-1627257600-f5cpj 0/1 Completed 0 2d9h pod/image-pruner-1627344000-swqx9 0/1 Completed 0 33h pod/image-pruner-1627430400-rv5nt 0/1 Completed 0 9h pod/image-registry-6758b547f-6pnj8 1/1 Running 0 76m pod/node-ca-bwb5r 1/1 Running 0 90d pod/node-ca-f8w54 1/1 Running 0 90d pod/node-ca-gjx7h 1/1 Running 0 90d pod/node-ca-lcx4k 1/1 Running 0 33d pod/node-ca-v7zmx 1/1 Running 0 7d21h pod/node-ca-xpppp 1/1 Running 0 89d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/image-registry ClusterIP 172.30.196.167 <none> 5000/TCP 15h service/image-registry-operator ClusterIP None <none> 60000/TCP 90d NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-ca 6 6 6 6 6 kubernetes.io/os=linux 90d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-image-registry-operator 1/1 1 1 90d deployment.apps/image-registry 1/1 1 1 15h NAME DESIRED CURRENT READY AGE replicaset.apps/cluster-image-registry-operator-74f6d954b6 1 1 1 90d replicaset.apps/image-registry-6758b547f 1 1 1 76m replicaset.apps/image-registry-78bfbd7f59 0 0 0 15h replicaset.apps/image-registry-7fcc8d6cc8 0 0 0 80m replicaset.apps/image-registry-864f88f5b 0 0 0 15h replicaset.apps/image-registry-cb47fffb 0 0 0 10h NAME COMPLETIONS DURATION AGE job.batch/image-pruner-1627257600 1/1 10s 2d9h job.batch/image-pruner-1627344000 1/1 6s 33h job.batch/image-pruner-1627430400 1/1 5s 9h NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE cronjob.batch/image-pruner 0 0 * * * False 0 9h 90d NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD route.route.openshift.io/public-routes astra-registry.apps.ocp-vmw.cie.netapp.com image-registry <all> reencrypt None
-
Se estiver usando os certificados TLS padrão para a rota de registro do operador de entrada OpenShift, você poderá buscar os certificados TLS usando o seguinte comando.
[netapp-user@rhel7 ~]$ oc extract secret/router-ca --keys=tls.crt -n openshift-ingress-operator
-
Para permitir que os nós do OpenShift acessem e extraiam as imagens do registro, adicione os certificados ao cliente do Docker nos nós do OpenShift. Crie um configmap no
openshift-confignamespace usando os certificados TLS e aplique o patch na configuração da imagem do cluster para tornar o certificado confiável.[netapp-user@rhel7 ~]$ oc create configmap astra-ca -n openshift-config --from-file=astra-registry.apps.ocp-vmw.cie.netapp.com=tls.crt [netapp-user@rhel7 ~]$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"astra-ca"}}}' --type=merge -
O registro interno do OpenShift é controlado por autenticação. Todos os usuários do OpenShift podem acessar o registro do OpenShift, mas as operações que o usuário conectado pode executar dependem das permissões do usuário.
-
Para permitir que um usuário ou um grupo de usuários extraia imagens do registro, o(s) usuário(s) deve(m) ter a função de visualizador de registro atribuída.
[netapp-user@rhel7 ~]$ oc policy add-role-to-user registry-viewer ocp-user [netapp-user@rhel7 ~]$ oc policy add-role-to-group registry-viewer ocp-user-group
-
Para permitir que um usuário ou grupo de usuários grave ou envie imagens, o(s) usuário(s) deve(m) ter a função de editor de registro atribuída.
[netapp-user@rhel7 ~]$ oc policy add-role-to-user registry-editor ocp-user [netapp-user@rhel7 ~]$ oc policy add-role-to-group registry-editor ocp-user-group
-
-
Para que os nós do OpenShift acessem o registro e enviem ou recebam as imagens, você precisa configurar um segredo de recebimento.
[netapp-user@rhel7 ~]$ oc create secret docker-registry astra-registry-credentials --docker-server=astra-registry.apps.ocp-vmw.cie.netapp.com --docker-username=ocp-user --docker-password=password
-
Esse segredo de pull pode então ser corrigido para contas de serviço ou ser referenciado na definição de pod correspondente.
-
Para aplicar o patch às contas de serviço, execute o seguinte comando.
[netapp-user@rhel7 ~]$ oc secrets link <service_account_name> astra-registry-credentials --for=pull
-
Para fazer referência ao segredo de pull na definição do pod, adicione o seguinte parâmetro ao
specseção.imagePullSecrets: - name: astra-registry-credentials
-
-
Para enviar ou receber uma imagem de estações de trabalho diferentes do nó OpenShift, conclua as seguintes etapas.
-
Adicione os certificados TLS ao cliente do Docker.
[netapp-user@rhel7 ~]$ sudo mkdir /etc/docker/certs.d/astra-registry.apps.ocp-vmw.cie.netapp.com [netapp-user@rhel7 ~]$ sudo cp /path/to/tls.crt /etc/docker/certs.d/astra-registry.apps.ocp-vmw.cie.netapp.com
-
Efetue login no OpenShift usando o comando oc login.
[netapp-user@rhel7 ~]$ oc login --token=sha256~D49SpB_lesSrJYwrM0LIO-VRcjWHu0a27vKa0 --server=https://api.ocp-vmw.cie.netapp.com:6443
-
Efetue login no registro usando as credenciais de usuário do OpenShift com o comando podman/docker.
homem-pod[netapp-user@rhel7 ~]$ podman login astra-registry.apps.ocp-vmw.cie.netapp.com -u kubeadmin -p $(oc whoami -t) --tls-verify=false
+ NOTA: Se você estiver usando
kubeadminusuário faça login no registro privado e use o token em vez da senha.estivador[netapp-user@rhel7 ~]$ docker login astra-registry.apps.ocp-vmw.cie.netapp.com -u kubeadmin -p $(oc whoami -t)
+ NOTA: Se você estiver usando
kubeadminusuário faça login no registro privado e use o token em vez da senha. -
Empurre ou puxe as imagens.
homem-pod[netapp-user@rhel7 ~]$ podman push astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest [netapp-user@rhel7 ~]$ podman pull astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest
estivador[netapp-user@rhel7 ~]$ docker push astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest [netapp-user@rhel7 ~]$ docker pull astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest
-