Tworzenie klastra prywatnego usługi Azure Red Hat OpenShift 4

W tym artykule przygotujesz środowisko do utworzenia prywatnych klastrów usługi Azure Red Hat OpenShift z systemem OpenShift 4. Dowiesz się, jak:

  • Konfigurowanie wymagań wstępnych i tworzenie wymaganej sieci wirtualnej i podsieci
  • Wdrażanie klastra z prywatnym punktem końcowym serwera interfejsu API i prywatnym kontrolerem ruchu przychodzącego

Jeśli zdecydujesz się zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten samouczek będzie wymagał interfejsu wiersza polecenia platformy Azure w wersji 2.30.0 lub nowszej. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Zanim rozpoczniesz

Rejestrowanie dostawców zasobów

  1. Jeśli masz wiele subskrypcji platformy Azure, określ odpowiedni identyfikator subskrypcji:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Zarejestruj dostawcę Microsoft.RedHatOpenShift zasobów:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Zarejestruj dostawcę Microsoft.Compute zasobów (jeśli jeszcze tego nie zrobiono):

    az provider register -n Microsoft.Compute --wait
    
  4. Zarejestruj dostawcę Microsoft.Network zasobów (jeśli jeszcze tego nie zrobiono):

    az provider register -n Microsoft.Network --wait
    
  5. Zarejestruj dostawcę Microsoft.Storage zasobów (jeśli jeszcze tego nie zrobiono):

    az provider register -n Microsoft.Storage --wait
    

Uzyskiwanie wpisu tajnego ściągania oprogramowania Red Hat (opcjonalnie)

Wpis tajny ściągania oprogramowania Red Hat umożliwia klastrowi dostęp do rejestrów kontenerów Red Hat wraz z dodatkową zawartością. Ten krok jest opcjonalny, ale zalecany.

  1. Przejdź do portalu menedżera klastra Red Hat OpenShift i zaloguj się.

    Musisz zalogować się na swoje konto usługi Red Hat lub utworzyć nowe konto red hat przy użyciu firmowej poczty e-mail i zaakceptować warunki i postanowienia.

  2. Kliknij pozycję Pobierz wpis tajny ściągania.

Zachowaj zapisany pull-secret.txt plik w bezpiecznym miejscu — będzie on używany w każdym tworzeniu klastra.

Podczas uruchamiania polecenia możesz odwołać się do wpisu tajnego az aro create ściągania przy użyciu parametru --pull-secret @pull-secret.txt . Wykonaj polecenie az aro create z katalogu, w którym został zapisany pull-secret.txt plik. W przeciwnym razie zastąp ciąg @pull-secret.txt .@<path-to-my-pull-secret-file

Jeśli kopiujesz klucz tajny ściągnięcia lub odwołujesz się do niego w innych skryptach, klucz tajny ściągnięcia powinien być sformatowany jako prawidłowy ciąg JSON.

Tworzenie sieci wirtualnej zawierającej dwie puste podsieci

Następnie utworzysz sieć wirtualną zawierającą dwie puste podsieci.

  1. Ustaw następujące zmienne.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP="v4-$LOCATION"    # the name of the resource group where you want to create your cluster
    CLUSTER=aro-cluster             # the name of your cluster
    
  2. Tworzenie grupy zasobów

    Grupa zasobów platformy Azure to logiczna grupa przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi. Podczas tworzenia grupy zasobów zostanie wyświetlony monit o określenie lokalizacji. Ta lokalizacja polega na tym, że metadane grupy zasobów są przechowywane, a także tam, gdzie zasoby są uruchamiane na platformie Azure, jeśli nie określisz innego regionu podczas tworzenia zasobów. Utwórz grupę zasobów przy użyciu polecenia [az group create][az-group-create].

    az group create --name $RESOURCEGROUP --location $LOCATION
    

    Następujące przykładowe dane wyjściowe przedstawiają pomyślnie utworzoną grupę zasobów:

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. Utwórz sieć wirtualną.

    Klastry usługi Azure Red Hat OpenShift z systemem OpenShift 4 wymagają sieci wirtualnej z dwiema pustymi podsieciami dla węzłów głównych i roboczych.

    Utwórz nową sieć wirtualną w tej samej utworzonej wcześniej grupie zasobów.

    az network vnet create \
    --resource-group $RESOURCEGROUP \
    --name aro-vnet \
    --address-prefixes 10.0.0.0/22
    

    Następujące przykładowe dane wyjściowe pokazują, że sieć wirtualna została utworzona pomyślnie:

    {
    "newVNet": {
        "addressSpace": {
        "addressPrefixes": [
            "10.0.0.0/22"
        ]
        },
        "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet",
        "location": "eastus",
        "name": "aro-vnet",
        "provisioningState": "Succeeded",
        "resourceGroup": "aro-rg",
        "type": "Microsoft.Network/virtualNetworks"
    }
    }
    
  4. Dodaj pustą podsieć dla węzłów głównych.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name master-subnet \
    --address-prefixes 10.0.0.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  5. Dodaj pustą podsieć dla węzłów procesu roboczego.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name worker-subnet \
    --address-prefixes 10.0.2.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  6. Wyłącz zasady prywatnego punktu końcowego podsieci w podsieci master. Jest to wymagane, aby móc nawiązać połączenie z klastrem i zarządzać nim.

    az network vnet subnet update \
    --name master-subnet \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --disable-private-link-service-network-policies true
    

Tworzenie klastra

Uruchom następujące polecenie, aby utworzyć klaster. Opcjonalnie możesz przekazać wpis tajny ściągania oprogramowania Red Hat, który umożliwia klastrowi dostęp do rejestrów kontenerów usługi Red Hat wraz z dodatkową zawartością.

Uwaga

Jeśli używasz poleceń kopiowania/wklejania i używania jednego z opcjonalnych parametrów, usuń początkowe hasztagi i końcowy tekst komentarza. Ponadto zamknij argument w poprzednim wierszu polecenia za pomocą końcowego ukośnika odwrotnego.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private
  # --domain foo.example.com # [OPTIONAL] custom domain
  # --pull-secret @pull-secret.txt # [OPTIONAL]

Po wykonaniu az aro create polecenia zwykle utworzenie klastra trwa około 35 minut.

Uwaga

Podczas próby utworzenia klastra, jeśli zostanie wyświetlony komunikat o błędzie informujący o przekroczeniu limitu przydziału zasobów, zobacz Dodawanie limitu przydziału do konta usługi ARO, aby dowiedzieć się, jak kontynuować.

Ważne

Jeśli zdecydujesz się określić domenę niestandardową, na przykład foo.example.com, konsola OpenShift będzie dostępna pod adresem URL, takim jak https://console-openshift-console.apps.foo.example.com, zamiast wbudowanej domeny https://console-openshift-console.apps.<random>.<location>.aroapp.io.

Domyślnie usługa OpenShift używa certyfikatów z podpisem własnym dla wszystkich tras utworzonych w usłudze *.apps.<random>.<location>.aroapp.io. W przypadku wybrania opcji Niestandardowy system DNS po nawiązaniu połączenia z klastrem należy postępować zgodnie z dokumentacją usługi OpenShift, aby skonfigurować certyfikat niestandardowy dla kontrolera ruchu przychodzącego i certyfikat niestandardowy dla serwera interfejsu API.

Tworzenie klastra prywatnego bez publicznego adresu IP

Zazwyczaj klastry prywatne są tworzone przy użyciu publicznego adresu IP i modułu równoważenia obciążenia, zapewniając środki dla łączności wychodzącej z innymi usługami. Można jednak utworzyć klaster prywatny bez publicznego adresu IP. Może to być wymagane w sytuacjach, w których wymagania dotyczące zabezpieczeń lub zasad uniemożliwiają korzystanie z publicznych adresów IP.

Aby utworzyć klaster prywatny bez publicznego adresu IP, wykonaj procedurę powyżej, dodając parametr --outbound-type UserDefinedRouting do aro create polecenia, jak w poniższym przykładzie:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private \
  --outbound-type UserDefinedRouting

Uwaga

Flaga UserDefinedRouting może być używana tylko podczas tworzenia klastrów z parametrami --apiserver-visibility Private i --ingress-visibility Private . Upewnij się, że używasz najnowszego interfejsu wiersza polecenia platformy Azure. Klastry wdrożone za pomocą interfejsu wiersza polecenia platformy Azure w wersji 2.52.0 i starszej zostaną wdrożone przy użyciu publicznych adresów IP.

Ta opcja routingu zdefiniowanego przez użytkownika uniemożliwia aprowizację publicznego adresu IP. Routing zdefiniowany przez użytkownika (UDR) umożliwia tworzenie tras niestandardowych na platformie Azure w celu zastąpienia domyślnych tras systemowych lub dodania kolejnych tras do tabeli tras podsieci. Aby dowiedzieć się więcej, zobacz Routing ruchu w sieci wirtualnej.

Ważne

Pamiętaj, aby określić poprawną podsieć z prawidłowo skonfigurowaną tabelą routingu podczas tworzenia klastra prywatnego.

W przypadku ruchu wychodzącego opcja Routing zdefiniowany przez użytkownika gwarantuje, że nowo utworzony klaster ma włączoną funkcję blokady ruchu wychodzącego, aby umożliwić zabezpieczanie ruchu wychodzącego z nowego klastra prywatnego. Aby dowiedzieć się więcej, zobacz Kontrolowanie ruchu wychodzącego dla klastra usługi Azure Red Hat OpenShift (ARO).

Uwaga

Jeśli wybierzesz typ sieci routingu zdefiniowanego przez użytkownika, całkowicie odpowiadasz za zarządzanie ruchem wychodzącym routingu klastra poza siecią wirtualną (na przykład uzyskiwanie dostępu do publicznego Internetu). Usługa Azure Red Hat OpenShift nie może zarządzać tym za Ciebie.

Można skonfigurować jeden lub więcej adresów IP ruchu wychodzącego do przestrzeni nazw lub określonych zasobników w przestrzeni nazw klastra prywatnego bez publicznego adresu IP. W tym celu wykonaj procedurę powyżej, aby utworzyć klaster prywatny bez publicznego adresu IP, a następnie skonfigurować adres IP ruchu wychodzącego zgodnie z tym dokumentem Red Hat OpenShift. Te adresy IP ruchu wychodzącego muszą pochodzić z podsieci skojarzonych z klastrem ARO.

Konfigurowanie adresu IP ruchu wychodzącego dla klastra prywatnego usługi ARO jest obsługiwane tylko w przypadku klastrów z parametrem --outbound-type UserDefinedRouting . Nie jest obsługiwany w przypadku publicznych klastrów ARO, które mają --outbound-type LoadBalancer parametr .

Połączenie do klastra prywatnego

Możesz zalogować się do klastra kubeadmin przy użyciu użytkownika. Uruchom następujące polecenie, aby znaleźć hasło użytkownika kubeadmin .

az aro list-credentials \
  --name $CLUSTER \
  --resource-group $RESOURCEGROUP

Poniższe przykładowe dane wyjściowe pokazują, że hasło będzie znajdować się w pliku kubeadminPassword.

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

Adres URL konsoli klastra można znaleźć, uruchamiając następujące polecenie, które będzie wyglądać następująco: https://console-openshift-console.apps.<random>.<region>.aroapp.io/

 az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv

Ważne

Aby nawiązać połączenie z prywatnym klastrem usługi Azure Red Hat OpenShift, należy wykonać następujący krok z hosta, który znajduje się w utworzonej sieci wirtualnej lub w sieci wirtualnej równorzędnej z siecią wirtualną, w której wdrożono klaster.

Uruchom adres URL konsoli w przeglądarce i zaloguj się przy użyciu kubeadmin poświadczeń.

Screenshot that shows the Azure Red Hat OpenShift login screen.

Instalowanie interfejsu wiersza polecenia platformy OpenShift

Po zalogowaniu się do konsoli internetowej openShift kliknij pozycję ? w prawym górnym rogu, a następnie w obszarze Narzędzia wiersza polecenia. Pobierz wydanie odpowiednie dla swojej maszyny.

Image shows Azure Red Hat OpenShift login screen

Możesz również pobrać najnowszą wersję interfejsu wiersza polecenia odpowiednią dla maszyny.

Połączenie przy użyciu interfejsu wiersza polecenia platformy OpenShift

Pobierz adres serwera interfejsu API.

apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)

Ważne

Aby nawiązać połączenie z prywatnym klastrem usługi Azure Red Hat OpenShift, należy wykonać następujący krok z hosta, który znajduje się w utworzonej sieci wirtualnej lub w sieci wirtualnej równorzędnej z siecią wirtualną, w której wdrożono klaster.

Zaloguj się do serwera interfejsu API klastra OpenShift przy użyciu następującego polecenia. Zastąp <hasło> kubeadmin właśnie pobranym hasłem.

oc login $apiServer -u kubeadmin -p <kubeadmin password>

Następne kroki

W tym artykule wdrożono klaster usługi Azure Red Hat OpenShift z systemem OpenShift 4. W tym samouczku omówiono:

  • Konfigurowanie wymagań wstępnych i tworzenie wymaganej sieci wirtualnej i podsieci
  • Wdrażanie klastra
  • Połączenie do klastra kubeadmin przy użyciu użytkownika

Przejdź do następnego artykułu, aby dowiedzieć się, jak skonfigurować klaster do uwierzytelniania przy użyciu identyfikatora Entra firmy Microsoft.