Membuat kluster privat Azure Red Hat OpenShift 4

Dalam artikel ini, Anda akan menyiapkan lingkungan untuk membuat kluster privat Azure Red Hat OpenShift yang menjalankan OpenShift 4. Anda akan mempelajari cara:

  • Menyiapkan prasyarat dan membuat jaringan virtual dan subnet yang diperlukan
  • Menyebarkan kluster dengan titik akhir server API privat dan pengontrol ingress privat

Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, tutorial ini mengharuskan Anda menjalankan Azure CLI versi 2.30.0 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Sebelum Anda mulai

Daftarkan penyedia sumber

  1. Jika Anda memiliki beberapa langganan Azure, tetapkan ID langganan yang relevan:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Daftarkan penyedia sumber daya Microsoft.RedHatOpenShift:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Daftarkan Microsoft.Compute penyedia sumber daya (jika Anda belum melakukannya):

    az provider register -n Microsoft.Compute --wait
    
  4. Daftarkan Microsoft.Network penyedia sumber daya (jika Anda belum melakukannya):

    az provider register -n Microsoft.Network --wait
    
  5. Daftarkan Microsoft.Storage penyedia sumber daya (jika Anda belum melakukannya):

    az provider register -n Microsoft.Storage --wait
    

Mendapatkan rahasia penarikan Red Hat (opsional)

Rahasia penarikan Red Hat memungkinkan kluster Anda untuk mengakses registri kontainer Red Hat bersama dengan konten tambahan. Langkah ini bersifat opsional tetapi direkomendasikan.

  1. Buka portal manajer kluster Red Hat OpenShift Anda dan masuk.

    Anda harus masuk ke akun Red Hat Anda atau membuat akun Red Hat baru dengan email bisnis Anda dan menerima syarat dan ketentuan.

  2. Klik Unduh rahasia penarikan.

Simpan file pull-secret.txt yang disimpan di tempat yang aman - file tersebut akan digunakan di setiap pembuatan kluster.

Saat menjalankan perintah az aro create, Anda dapat mereferensikan rahasia penarikan menggunakan parameter --pull-secret @pull-secret.txt. Jalankan az aro create dari direktori tempat Anda menyimpan file pull-secret.txt. Jika tidak, ganti @pull-secret.txt dengan @<path-to-my-pull-secret-file.

Jika Anda menyalin rahasia penarikan atau mereferensikannya di skrip lain, rahasia penarikan Anda harus diformat sebagai string JSON yang valid.

Membuat jaringan virtual berisi dua subnet kosong

Selanjutnya, Anda akan membuat jaringan virtual yang berisi dua subnet kosong.

  1. Atur variabel berikut.

    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. Buat grup sumber daya

    Grup sumber daya Azure adalah grup logis tempat sumber daya Azure disebarkan dan dikelola. Saat membuat grup sumber daya, Anda akan diminta untuk menentukan lokasi. Lokasi ini adalah tempat metadata grup sumber daya disimpan, juga tempat sumber daya Anda berjalan di Azure jika Anda tidak menentukan wilayah lain selama pembuatan sumber daya. Memnuat grup sumber daya menggunakan perintah [buat grup az][az-group-create].

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

    Output contoh berikut menampilkan grup sumber daya yang berhasil dibuat:

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. Buat jaringan virtual.

    Kluster OpenShift Azure Red Hat yang menjalankan OpenShift 4 memerlukan jaringan virtual dengan dua subnet kosong, untuk node master dan pekerja.

    Membuat jaringan virtual baru di grup sumber daya yang sama dengan yang Anda buat sebelumnya.

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

    Output contoh berikut menunjukkan jaringan virtual yang berhasil dibuat:

    {
    "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. Tambahkan subnet kosong untuk node master.

    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. Tambahkan subnet kosong untuk node pekerja.

    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. Nonaktifkan kebijakan titik akhir privat subnet pada subnet master. Hal ini diperlukan untuk dapat menghubungkan dan mengelola kluster.

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

Membuat kluster

Jalankan perintah berikut untuk membuat kluster. Secara opsional, Anda dapat melewati rahasia penarikan Red Hat Anda yang memungkinkan kluster Anda mengakses registri kontainer Red Hat bersama dengan konten tambahan.

Catatan

Jika Anda menyalin/menempelkan perintah dan menggunakan salah satu parameter opsional, pastikan hapus hashtag awal dan teks komentar berikutnya. Selain itu, tutup argumen pada baris sebelumnya dari perintah dengan garis miring terbalik berikutnya.

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]

Setelah menjalankan perintah az aro create, biasanya diperlukan waktu sekitar 35 menit untuk membuat kluster.

Catatan

Saat mencoba membuat kluster, jika Anda menerima pesan kesalahan yang mengatakan bahwa kuota sumber daya Anda telah terlampaui, lihat Menambahkan Kuota ke akun ARO untuk mempelajari cara melanjutkan.

Penting

Jika Anda memilih untuk menentukan domain kustom, misalnya foo.example.com, konsol OpenShift akan tersedia di URL seperti https://console-openshift-console.apps.foo.example.com, bukan domain bawaan https://console-openshift-console.apps.<random>.<location>.aroapp.io.

Secara default, OpenShift menggunakan sertifikat yang ditandatangani sendiri untuk semua rute yang dibuat pada *.apps.<random>.<location>.aroapp.io. Jika Anda memilih DNS Kustom, setelah menyambungkan ke kluster, Anda harus mengikuti dokumentasi OpenShift untuk mengonfigurasi sertifikat kustom untuk pengontrol ingress dan sertifikat kustom untuk server API Anda.

Membuat kluster privat tanpa alamat IP publik

Biasanya, kluster privat dibuat dengan alamat IP publik dan load balancer, menyediakan sarana untuk konektivitas keluar ke layanan lain. Namun, Anda dapat membuat kluster privat tanpa alamat IP publik. Ini mungkin diperlukan dalam situasi di mana persyaratan keamanan atau kebijakan melarang penggunaan alamat IP publik.

Untuk membuat kluster privat tanpa alamat IP publik, ikuti prosedur di atas, tambahkan parameter --outbound-type UserDefinedRouting ke aro create perintah , seperti dalam contoh berikut:

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

Catatan

Bendera UserDefinedRouting hanya dapat digunakan saat membuat kluster dengan --apiserver-visibility Private parameter dan --ingress-visibility Private . Pastikan Anda menggunakan Azure CLI terbaru. Kluster yang disebarkan dengan Azure CLI 2.52.0 dan yang lebih lama akan disebarkan dengan IP publik.

Opsi Perutean yang Ditentukan Pengguna ini mencegah alamat IP publik diprovisikan. User Defined Routing (UDR) memungkinkan Anda membuat rute kustom di Azure untuk mengambil alih rute sistem default atau menambahkan lebih banyak rute ke tabel rute subnet. Lihat Perutean lalu lintas jaringan virtual untuk mempelajari selengkapnya.

Penting

Pastikan untuk menentukan subnet yang benar dengan tabel perutean yang dikonfigurasi dengan benar saat membuat kluster privat Anda.

Untuk keluar, opsi Perutean yang Ditentukan Pengguna memastikan bahwa kluster yang baru dibuat memiliki fitur penguncian keluar yang diaktifkan untuk memungkinkan Anda mengamankan lalu lintas keluar dari kluster privat baru Anda. Lihat Mengontrol lalu lintas keluar untuk kluster Azure Red Hat OpenShift (ARO) Anda untuk mempelajari selengkapnya.

Catatan

Jika Anda memilih jenis jaringan Perutean yang Ditentukan Pengguna, Anda sepenuhnya bertanggung jawab untuk mengelola keluarnya perutean kluster Anda di luar jaringan virtual Anda (misalnya, mendapatkan akses ke internet publik). Azure Red Hat OpenShift tidak dapat mengelola ini untuk Anda.

Anda dapat mengonfigurasi satu atau beberapa alamat IP keluar ke namespace layanan atau ke pod tertentu di namespace kluster privat tanpa alamat IP publik. Untuk melakukannya, ikuti prosedur di atas untuk membuat kluster privat tanpa alamat IP publik, lalu konfigurasikan IP keluar sesuai dokumen Red Hat OpenShift ini. Alamat IP keluar ini harus berasal dari subnet yang terkait dengan kluster ARO.

Mengonfigurasi IP keluar untuk kluster privat ARO hanya didukung untuk kluster dengan --outbound-type UserDefinedRouting parameter . Ini tidak didukung untuk kluster ARO publik yang memiliki --outbound-type LoadBalancer parameter .

Menyambungkan ke kluster privat

Anda dapat masuk ke kluster menggunakan pengguna kubeadmin. Jalankan perintah berikut untuk menemukan kata sandi untuk pengguna kubeadmin.

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

Contoh output berikut menunjukkan sandi akan berada di kubeadminPassword.

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

Anda dapat menemukan URL konsol kluster dengan menjalankan perintah berikut, yang akan terlihat seperti https://console-openshift-console.apps.<random>.<region>.aroapp.io/

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

Penting

Untuk menyambungkan ke kluster Azure Red Hat OpenShift privat, Anda harus melakukan langkah berikut dari host yang ada di Virtual Network yang Anda buat atau di Virtual Network yang di-peering dengan Virtual Network tempat kluster disebarkan.

Luncurkan URL konsol di browser dan masuk menggunakan kredensial kubeadmin.

Screenshot that shows the Azure Red Hat OpenShift login screen.

Menginstal CLI OpenShift

Setelah Anda masuk ke OpenShift Web Console, klik ? di kanan atas lalu pada Alat Baris Perintah. Unduh rilis yang sesuai dengan komputer Anda.

Image shows Azure Red Hat OpenShift login screen

Anda juga dapat mengunduh rilis terbaru CLI yang sesuai dengan komputer Anda.

Menyambungkan menggunakan OpenShift CLI

Ambil alamat server API.

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

Penting

Untuk menyambungkan ke kluster Azure Red Hat OpenShift privat, Anda harus melakukan langkah berikut dari host yang ada di Virtual Network yang Anda buat atau di Virtual Network yang di-peering dengan Virtual Network tempat kluster disebarkan.

Masuk ke server API kluster OpenShift menggunakan perintah berikut. Ganti <kata sandi> kubeadmin dengan kata sandi yang baru saja Anda ambil.

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

Langkah berikutnya

Dalam artikel ini, kluster Azure Red Hat OpenShift yang menjalankan OpenShift 4 disebarkan. Anda mempelajari cara untuk:

  • Menyiapkan prasyarat dan membuat jaringan virtual dan subnet yang diperlukan
  • Menyebarkan kluster
  • Menghubungkan ke kluster menggunakan pengguna kubeadmin

Lanjutkan ke artikel berikutnya untuk mempelajari cara mengonfigurasi kluster untuk autentikasi menggunakan ID Microsoft Entra.