Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Te samouczki obejmują różne scenariusze wdrożeń połączonego rozszerzenia rejestru w klastrze Kubernetes obsługiwanym przez Arc. Po zainstalowaniu połączonego rozszerzenia rejestru można synchronizować obrazy z rejestru w chmurze z lokalizacji lokalnych lub zdalnych.
Zanim zaczniesz, poświęć chwilę, aby dowiedzieć się, jak koncepcyjnie działa Kubernetes z obsługą usługi Arc.
Połączony rejestr można bezpiecznie wdrożyć przy użyciu różnych metod szyfrowania. Aby zapewnić pomyślne wdrożenie, postępuj zgodnie z przewodnikiem Szybki start, aby przejrzeć wymagania wstępne i inne istotne informacje. Domyślnie połączony rejestr jest skonfigurowany z protokołem HTTPS, trybem ReadOnly, dystrybucją zaufania i usługą menedżera certyfikatów. W zależności od scenariusza możesz dodać więcej dostosowań i zależności.
Co to jest usługa Cert Manager?
Menedżer certyfikatów rejestru połączonego to usługa, która zarządza certyfikatami TLS dla rozszerzenia połączonego rejestru w klastrze Kubernetes z obsługą Azure Arc. Zapewnia bezpieczną komunikację między połączonym rejestrem a innymi składnikami, obsługując tworzenie, odnawianie i dystrybucję certyfikatów. Tę usługę można zainstalować w ramach wdrożenia połączonego rejestru lub użyć istniejącego menedżera certyfikatów, jeśli jest już zainstalowany w klastrze.
Cert-Manager to dodatek kubernetes typu open source, który automatyzuje zarządzanie i wystawianie certyfikatów TLS z różnych źródeł. Zarządza cyklem życia certyfikatów wystawionych przez pule CA utworzone przy użyciu usługi CA, zachowując ich ważność i odnawiając je przed wygaśnięciem.
Co to jest dystrybucja zaufania?
Dystrybucja zaufania połączonego rejestru odnosi się do procesu bezpiecznego rozdzielania zaufania między usługą rejestru a klientami Kubernetes w ramach klastra. Jest to osiągane przy użyciu urzędu certyfikacji, takiego jak cert-manager, do podpisywania certyfikatów TLS, które są następnie dystrybuowane zarówno do usługi rejestru, jak i klientów. Dzięki temu wszystkie jednostki mogą bezpiecznie uwierzytelniać się nawzajem, zachowując bezpieczne i zaufane środowisko w klastrze Kubernetes.
Wymagania wstępne
Do ukończenia tego samouczka niezbędne są następujące elementy:
- Postępuj zgodnie z przewodnikiem Quickstart, aby bezpiecznie wdrożyć rozszerzenie połączonego rejestru.
Wdrażanie połączonego rozszerzenia rejestru przy użyciu wstępnie zainstalowanego menedżera certyfikatów
W tym samouczku pokazujemy, jak używać preinstalowanej usługi cert-manager w klastrze. Ta konfiguracja zapewnia kontrolę nad zarządzaniem certyfikatami, umożliwiając wdrożenie połączonego rozszerzenia rejestru z szyfrowaniem, wykonując następujące kroki:
Uruchom polecenie az-k8s-extension-create w quickstart i ustaw parametry cert-manager.enabled=true oraz cert-manager.install=false w taki sposób, aby określić, czy usługa cert-manager jest zainstalowana i włączona:
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
Wdrażanie połączonego rozszerzenia rejestru przy użyciu własnego certyfikatu (BYOC)
W tym samouczku pokazano, jak używać własnego certyfikatu (BYOC) w klastrze. Funkcja BYOC umożliwia korzystanie z własnego certyfikatu publicznego i pary kluczy prywatnych, co zapewnia kontrolę nad zarządzaniem certyfikatami. Ta konfiguracja umożliwia wdrożenie połączonego rozszerzenia rejestru z szyfrowaniem, wykonując podane kroki:
Uwaga
Funkcja BYOC ma zastosowanie dla klientów, którzy mają własny certyfikat, który jest już zaufany przez węzły platformy Kubernetes. Nie zaleca się ręcznego aktualizowania węzłów w celu zaufania certyfikatom.
Postępuj zgodnie z przewodnikiem szybkiego startu i dodaj certyfikat publiczny oraz zmienną ciągu klucza prywatnego wraz z przypisaną do niej wartością.
- Utwórz certyfikat SSL z podpisem własnym, używając adresu IP usługi connected-registry jako 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>"
- Uzyskaj ciągi zakodowane w formacie base64 tych plików certyfikatów
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Przykład pliku ustawień chronionych z wpisem tajnym w formacie JSON:
Uwaga
Para certyfikatu publicznego i klucza prywatnego musi być zakodowana w formacie base64 i dodana do pliku ustawień chronionych.
{
"connectionString": "[connection string here]",
"tls.crt": $TLS_CRT,
"tls.key": $TLS_KEY,
"tls.cacrt": $TLS_CRT
}
Teraz można wdrożyć rozszerzenie połączonego rejestru z szyfrowaniem HTTPS (TLS) przy użyciu certyfikatu publicznego i zarządzania parami kluczy prywatnych, konfigurując zmienne ustawione na
cert-manager.enabled=falseicert-manager.install=false. W przypadku tych parametrów menedżer certyfikatów nie jest zainstalowany ani włączony, ponieważ zamiast tego jest używana para certyfikatów publicznych i kluczy prywatnych.Uruchom polecenie az-k8s-extension-create na potrzeby wdrożenia po edycji pliku ustawień chronionych:
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
Wdrażanie połączonego rejestru z wykorzystaniem zarządzania tajnymi wpisami w Kubernetes
W tym samouczku pokazujemy, jak używać sekretu Kubernetes na twoim klastrze. Sekret Kubernetes umożliwia bezpieczne zarządzanie autoryzowanym dostępem między podami w klastrze. Ta konfiguracja umożliwia wdrożenie połączonego rozszerzenia rejestru z szyfrowaniem, wykonując podane kroki:
Postępuj zgodnie z przewodnikiem szybkiego startu i dodaj tajną zmienną TLS Kubernetes oraz parę wartości.
- Utwórz certyfikat SSL z podpisem własnym z użyciem adresu IP usługi rejestru połączeń jako 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>"
- Uzyskaj ciągi zakodowane w formacie base64 z tych plików certyfikatów
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Tworzenie wpisu tajnego 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
Przykład pliku ustawień chronionych z wpisem tajnym w formacie JSON:
{ "connectionString": "[connection string here]", "tls.secret": “k8secret” }
Teraz możesz wdrożyć rozszerzenie rejestru połączeń z HTTPS (szyfrowaniem TLS) przy użyciu zarządzania tajnymi danymi w Kubernetes, konfigurując zmienne ustawione na cert-manager.enabled=false i cert-manager.install=false. W przypadku tych parametrów menedżer certyfikatów nie jest zainstalowany ani włączony, ponieważ klucz tajny kubernetes jest używany do szyfrowania.
Uruchom polecenie az-k8s-extension-create na potrzeby wdrożenia po edycji pliku ustawień chronionych:
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
Wdrażanie połączonego rejestru przy użyciu własnej dystrybucji zaufania i wyłączanie domyślnej dystrybucji zaufania połączonego rejestru
W tym samouczku pokazano, jak skonfigurować dystrybucję zaufania w klastrze. Korzystając z własnych par wpisów tajnych lub certyfikatów publicznych i kluczy prywatnych platformy Kubernetes, można wdrożyć połączone rozszerzenie rejestru z szyfrowaniem TLS, nieodłączną dystrybucją zaufania i odrzucić domyślną dystrybucję zaufania połączonego rejestru. Ta konfiguracja umożliwia wdrożenie połączonego rozszerzenia rejestru z szyfrowaniem, wykonując podane kroki:
Postępuj zgodnie z przewodnikiem Szybki start , aby dodać klucz tajny kubernetes lub certyfikat publiczny oraz pary klucz prywatny i wartość w pliku ustawień chronionych w formacie JSON.
Uruchom polecenie az-k8s-extension-create w przewodniku
trustDistribution.skipNodeSelector=falseaz 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>
W przypadku tych parametrów menedżer certyfikatów nie jest zainstalowany ani włączony, a ponadto dystrybucja zaufania połączonego rejestru nie jest wymuszana. Zamiast tego używasz dystrybucji zaufania dostarczonej przez klaster do ustanawiania zaufania między Połączonym rejestrem a węzłami klienta.
Czyszczenie zasobów
Usunięcie wdrożonego rozszerzenia połączonego rejestru powoduje usunięcie odpowiednich zasobników rejestru połączonego i ustawień konfiguracji.
Uruchom polecenie az-k8s-extension-delete, aby usunąć rozszerzenie połączonego rejestru:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClustersUruchom polecenie az acr connected-registry delete, aby usunąć rejestr połączeń.
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup
Usunięcie rozszerzenia rejestru Connected i rejestru Connected powoduje usunięcie wszystkich powiązanych zasobów i konfiguracji.