Nawiązywanie połączenia z Azure Red Hat OpenShift za pomocą klastra hostowanych płaszczyzn sterowania (wersja zapoznawcza)

W tym przewodniku Szybki start połączysz się z klastrem Azure Red Hat OpenShift z hostowanymi płaszczyznami sterowania (HCP), żądając tymczasowego poświadczenia administratora. Dane uwierzytelniające tworzą plik kubeconfig, którego używa się z narzędziem wiersza polecenia OpenShift (oc) w celu uzyskania dostępu do klastra.

Wymagania wstępne

Ważna

Jeśli klaster ma prywatny serwer interfejsu API, należy uruchomić wszystkie polecenia w tym artykule z hosta, który ma prywatną łączność sieciową z siecią wirtualną klastra. Łączność można ustanowić za pośrednictwem komunikacji równorzędnej sieci wirtualnych Azure, Azure VPN Gateway lub Azure ExpressRoute. Aby szybko przetestować łączność, zobacz Nawiązywanie połączenia z maszyny wirtualnej serwera przesiadkowego.

Utwórz maszynę wirtualną hosta bastionowego (tylko klastry prywatne)

Jeśli klaster ma prywatny serwer API i nie masz istniejącego prywatnego połączenia sieciowego, możesz utworzyć maszynę wirtualną typu jump box w dedykowanej podsieci z własną grupą zabezpieczeń sieciowych (NSG). Użyj maszyny wirtualnej serwera przesiadkowego do początkowej konfiguracji klastra, testowania lub jednorazowych zadań administracyjnych. Aby zapewnić stały dostęp do środowiska produkcyjnego z sieci lokalnych lub potoków CI/CD, użyj zamiast tego Azure VPN Gateway lub Azure ExpressRoute.

Przygotowywanie środowiska

  1. Ustaw zmienne środowiskowe. Zastąp zastępcze wartości własnymi wartościami.

    LOCATION="<location>"
    CUSTOMER_RG_NAME="<resource-group-name>"
    JUMPBOX_SUBNET_NAME="<subnet-name>"
    JUMPBOX_NSG_NAME="<nsg-name>"
    JUMPBOX_NAME="<jumpbox-vm-name>"
    
  2. Utwórz dedykowaną grupę zabezpieczeń sieciowych (NSG) dla maszyny wirtualnej jump box.

    az network nsg create \
     --name "${JUMPBOX_NSG_NAME}" \
     --resource-group "${CUSTOMER_RG_NAME}" \
     --location "${LOCATION}"
    
  3. Dodaj regułę SSH dla ruchu przychodzącego ograniczoną do żądanego zakresu adresów IP lub CIDR.

    az network nsg rule create \
     --resource-group "${CUSTOMER_RG_NAME}" \
     --nsg-name "${JUMPBOX_NSG_NAME}" \
     --name "AllowSSH" \
     --priority 1000 \
     --protocol Tcp \
     --destination-port-ranges 22 \
     --source-address-prefixes "<source-ip-address>" \
     --access Allow \
     --direction Inbound
    

    Zastąp <source-ip-address> element żądanym źródłem.

  4. Utwórz dedykowaną podsieć maszyny wirtualnej serwera bastionowego.

    az network vnet subnet create \
     --name "${JUMPBOX_SUBNET_NAME}" \
     --vnet-name "${CUSTOMER_VNET_NAME}" \
     --resource-group "${CUSTOMER_RG_NAME}" \
     --address-prefixes 10.0.2.0/28 \
     --network-security-group "${JUMPBOX_NSG_NAME}"
    

Utwórz maszynę wirtualną serwera przesiadkowego

  1. Utwórz maszynę wirtualną serwera bastionowego.

    az vm create \
     --resource-group "${CUSTOMER_RG_NAME}" \
     --name "${JUMPBOX_NAME}" \
     --image Ubuntu2204 \
     --admin-username azureuser \
     --vnet-name "${CUSTOMER_VNET_NAME}" \
     --subnet "${JUMPBOX_SUBNET_NAME}" \
     --size Standard_B2s \
     --generate-ssh-keys
    
  2. Uzyskaj publiczny adres IP maszyny wirtualnej serwera przesiadkowego.

    JUMPBOX_IP=$(az vm show \
     --resource-group "${CUSTOMER_RG_NAME}" \
     --name "${JUMPBOX_NAME}" \
     --show-details \
     --query publicIps \
     --output tsv)
    
    echo "Jump box VM IP: ${JUMPBOX_IP}"
    
  3. Połącz się z maszyną wirtualną serwera przesiadkowego za pośrednictwem protokołu SSH.

    ssh azureuser@"${JUMPBOX_IP}"
    

Konfigurowanie środowiska maszyny wirtualnej serwera przesiadkowego

Ponieważ serwer interfejsu API klastra prywatnego nie ma publicznego punktu końcowego, należy uruchomić oc polecenia z sieci wirtualnej.

  1. Pobierz i zainstaluj Azure CLI na maszynie wirtualnej serwera przesiadkowego.

    Ten przykład pobiera i instaluje Azure CLI dla systemu Ubuntu. Jeśli utworzono jump box przy użyciu innego systemu operacyjnego, postępuj zgodnie z instrukcjami instalacji interfejsu wiersza polecenia platformy Azure (Azure CLI) dla swojego systemu operacyjnego.

    curl -fsSL 'https://azurecliprod.blob.core.windows.net/$root/deb_install.sh' | sudo bash
    
  2. Sprawdź, czy Azure CLI jest zainstalowana.

    az version
    
  3. Zaloguj się do Azure.

    az login
    

    To polecenie zwraca kod urządzenia i adres URL.

  4. Otwórz adres URL w przeglądarce na komputerze lokalnym, wprowadź kod i uwierzytelnij się.

  5. Dodaj rozszerzenie CLI ARO HCP.

    az extension add --name aro
    
  6. Sprawdź, czy rozszerzenie ARO HCP dla interfejsu wiersza polecenia (CLI) jest zainstalowane.

    az aro hcp -h
    
  7. Zainstaluj narzędzie OpenShift CLI.

    curl -sL https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable/openshift-client-linux.tar.gz \
      | sudo tar -C /usr/local/bin -xz oc kubectl
    
  8. Sprawdź, czy zainstalowano OpenShift CLI.

    oc version --client
    

Połącz się z klastrem

Poświadczenia administracyjne wygasają po 24 godzinach.

  1. Ustaw następujące zmienne środowiskowe, jeśli jeszcze ich nie ustawiono. Zastąp wartości zastępcze wartościami odpowiednimi dla klastra.

    CUSTOMER_RG_NAME="<resource-group-name>"
    CLUSTER_NAME="<cluster-name>"
    
  2. Poproś o tymczasowe poświadczenie administratora dla klastra i zapisz kubeconfig do pliku.

    az aro hcp cluster request-credential --admin \
     --name "${CLUSTER_NAME}" \
     --resource-group "${CUSTOMER_RG_NAME}" \
     --file kubeconfig
    
  3. Ustaw zmienną KUBECONFIG środowiskową na ścieżkę zapisanego kubeconfig pliku.

    export KUBECONFIG=kubeconfig
    
  4. Sprawdź, czy możesz nawiązać połączenie z klastrem.

    oc auth whoami
    

    Poniższe przykładowe dane wyjściowe pokazują pomyślne połączenie.

    ATTRIBUTE    VALUE
    Username     system:customer-break-glass:<user-id>
    Groups       [system:masters system:authenticated]
    Extra: authentication.kubernetes.io/credential-id   <credential-id>
    

Czyszczenie

Odwoływanie poświadczeń administracyjnych

Jeśli chcesz odwołać wszystkie poświadczenia administracyjne dla klastra, uruchom następujące polecenie.

az aro hcp cluster revoke-credential \
  --name "${CLUSTER_NAME}" \
  --resource-group "${CUSTOMER_RG_NAME}"

Usuń maszynę wirtualną serwera przesiadkowego

Jeśli utworzono maszynę wirtualną przesiadkową w celu nawiązania połączenia z klastrem prywatnym, usuń maszynę wirtualną, aby uniknąć bieżących opłat.

az vm delete \
  --resource-group "${CUSTOMER_RG_NAME}" \
  --name "${JUMPBOX_NAME}" \
  --yes

Następne kroki