Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Estes tutoriais abrangem vários cenários de implantação para a extensão do Registro conectada em um cluster Kubernetes habilitado para Arc. Depois que a extensão do Registro conectada estiver instalada, você poderá sincronizar imagens do seu registro na nuvem para locais locais ou remotos.
Antes de mergulhar, reserve um momento para aprender como o Kubernetes habilitado para Arc funciona conceitualmente.
O registro conectado pode ser implantado com segurança usando vários métodos de criptografia. Para garantir uma implantação bem-sucedida, siga o guia de início rápido para revisar os pré-requisitos e outras informações pertinentes. Por padrão, o registro conectado é configurado com HTTPS, modo Somente Leitura, Distribuição de Confiança e o serviço Gerenciador de Certificados. Você pode adicionar mais personalizações e dependências conforme necessário, dependendo do seu cenário.
O que é o serviço Cert Manager?
O gerenciador de certificados de registro conectado é um serviço que gerencia certificados TLS para a extensão do Registro conectada em um cluster Kubernetes habilitado para Azure Arc. Ele garante uma comunicação segura entre o registro conectado e outros componentes, lidando com a criação, renovação e distribuição de certificados. Esse serviço pode ser instalado como parte da implantação do Registro conectado ou você pode usar um gerenciador de certificados existente se ele já estiver instalado no cluster.
O Cert-Manager é um complemento do Kubernetes de código aberto que automatiza o gerenciamento e a emissão de certificados TLS de várias fontes. Ele gerencia o ciclo de vida dos certificados emitidos por pools de autoridades de certificação criados usando o serviço da autoridade de certificação, garantindo que eles sejam válidos e renovados antes de expirarem.
O que é a distribuição de confiança?
A distribuição de confiança do Registro conectado refere-se ao processo de distribuição segura da confiança entre o serviço de Registro conectado e os clientes Kubernetes dentro de um cluster. Isso é conseguido usando uma Autoridade de Certificação (CA), como o cert-manager, para assinar certificados TLS, que são distribuídos para o serviço de registro e para os clientes. Isso garante que todas as entidades possam autenticar umas às outras com segurança, mantendo um ambiente seguro e confiável dentro do cluster Kubernetes.
Pré-requisitos
Para concluir este tutorial, precisa de:
- Siga o início rápido para implantar com segurança a extensão do Registro conectada.
Implantar a extensão do Registro conectada usando o cert-manager pré-instalado
Neste tutorial, demonstramos como usar um serviço cert-manager pré-instalado no cluster. Essa configuração oferece controle sobre o gerenciamento de certificados, permitindo que você implante a extensão do Registro conectada com criptografia seguindo as etapas fornecidas:
Execute o comando az-k8s-extension-create no início rápido e defina os cert-manager.enabled=true
parâmetros e cert-manager.install=false
para determinar se o serviço cert-manager está instalado e habilitado:
az k8s-extension create --cluster-name myarck8scluster \
--cluster-type connectedClusters \
--extension-type Microsoft.ContainerRegistry.ConnectedRegistry \
--name myconnectedregistry \
--resource-group myresourcegroup \
--config service.clusterIP=192.100.100.1 \
--config cert-manager.install=false \
--config-protected-file protected-settings-extension.json
Implantar extensão de registro conectada usando traga seu próprio certificado (BYOC)
Neste tutorial, demonstramos como usar seu próprio certificado (BYOC) no cluster. O BYOC permite que você use seu próprio certificado público e par de chaves privadas, dando-lhe controle sobre o gerenciamento de certificados. Esta configuração permite que você implante a extensão de registro conectada com criptografia seguindo as etapas fornecidas:
Nota
O BYOC é aplicável para clientes que trazem seu próprio certificado que já é confiável por seus nós Kubernetes. Não é recomendável atualizar manualmente os nós para confiar nos certificados.
Siga o início rápido e adicione o certificado público e a variável de cadeia de caracteres de chave privada + par de valores.
- Criar certificado SSL autoassinado com IP de serviço de registro conectado como SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Obtenha cadeias de caracteres codificadas base64 desses arquivos cert
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Exemplo de arquivo de configurações protegidas com segredo no formato JSON:
Nota
O certificado público e o par de chaves privadas devem ser codificados no formato base64 e adicionados ao arquivo de configurações protegidas.
{
"connectionString": "[connection string here]",
"tls.crt": $TLS_CRT,
"tls.key": $TLS_KEY,
"tls.cacrt": $TLS_CRT
}
Agora, você pode implantar a extensão de registro Connected com HTTPS (criptografia TLS) usando o certificado público e o gerenciamento de par de chaves privadas configurando variáveis definidas como
cert-manager.enabled=false
ecert-manager.install=false
. Com esses parâmetros, o cert-manager não é instalado ou habilitado, pois o certificado público e o par de chaves privadas são usados para criptografia.Execute o comando az-k8s-extension-create para implantação depois que o arquivo de configurações protegidas for editado:
az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Implantar o registro conectado com o gerenciamento secreto do Kubernetes
Neste tutorial, demonstramos como usar um segredo do Kubernetes em seu cluster. O segredo do Kubernetes permite que você gerencie com segurança o acesso autorizado entre pods dentro do cluster. Esta configuração permite que você implante a extensão de registro conectada com criptografia seguindo as etapas fornecidas:
Siga o início rápido e adicione a variável de cadeia de caracteres secreta TLS do Kubernetes + par de valores.
- Criar certificado SSL autoassinado com IP de serviço de registro conectado como SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Obtenha cadeias de caracteres codificadas base64 desses arquivos cert
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Criar segredo do k8s
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: k8secret
type: kubernetes.io/tls
data:
ca.crt: $TLS_CRT
tls.crt: $TLS_CRT
tls.key: $TLS_KEY
EOF
Exemplo de arquivo de configurações protegidas com segredo no formato JSON:
{ "connectionString": "[connection string here]", "tls.secret": “k8secret” }
Agora, você pode implantar a extensão de registro Connected com HTTPS (criptografia TLS) usando o gerenciamento secreto do Kubernetes configurando variáveis definidas como cert-manager.enabled=false
e cert-manager.install=false
. Com esses parâmetros, o cert-manager não é instalado ou habilitado, pois o segredo do Kubernetes é usado para criptografia.
Execute o comando az-k8s-extension-create para implantação depois que o arquivo de configurações protegidas for editado:
az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Implante o registro conectado usando sua própria distribuição de confiança e desabilite a distribuição de confiança padrão do registro conectado
Neste tutorial, demonstramos como configurar a distribuição de confiança no cluster. Ao usar seu próprio certificado secreto ou público do Kubernetes e pares de chaves privadas, você pode implantar a extensão do Registro conectado com criptografia TLS, sua distribuição de confiança inerente e rejeitar a distribuição de confiança padrão do Registro conectado. Esta configuração permite que você implante a extensão de registro conectada com criptografia seguindo as etapas fornecidas:
Siga o início rápido para adicionar o certificado secreto ou público do Kubernetes e a variável de chave privada + pares de valor no arquivo de configurações protegidas no formato JSON.
Execute o comando az-k8s-extension-create no início rápido e defina os parâmetros ,
trustDistribution.skipNodeSelector=false
para rejeitar atrustDistribution.enabled=false
distribuição de confiança do Registro conectado:az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config trustDistribution.enabled=false \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file <JSON file path>
Com esses parâmetros, o cert-manager não é instalado ou habilitado, além disso, a distribuição de confiança do Registro conectado não é imposta. Em vez disso, você está usando a distribuição de confiança fornecida pelo cluster para estabelecer confiança entre o Registro Conectado e os nós do cliente.
Clean up resources (Limpar recursos)
Ao excluir a extensão de registro Connected implantada, você remove os pods de registro Connected correspondentes e as definições de configuração.
Execute o comando az-k8s-extension-delete para excluir a extensão de registro Connected:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClusters
Execute o comando az acr connected-registry delete para excluir o registro conectado:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup
Ao excluir a extensão do Registro Conectado e o Registro Conectado, você remove todos os recursos e configurações associados.