ARO4 深入探討 - Microsoft Azure Red Hat OpenShift 4
讓我們深入挖掘!
Microsoft Azure Red Hat OpenShift 服務支持部署完全託管的 OpenShift 集群。
Azure Red Hat OpenShift 由 Red Hat 和 Microsoft 聯合設計、運營和支持,以提供集成的支持體驗。沒有虛擬機可以運行,也不需要打補丁。主節點、基礎架構和應用程序節點由 Red Hat 和 Microsoft 代表您進行修補、更新和監控。您的 Azure Red Hat OpenShift 集群已部署到您的 Azure 訂閱中,並包含在您的 Azure 賬單中。
在 OpenShift 4 上部署 Azure Red Hat 時,整個集群都包含在一個虛擬網絡中。在這個虛擬網絡中,您的主節點和工作節點都位於各自的子網中。每個子網都使用一個內部負載均衡器和一個公共負載均衡器。
這是有關 Azure Red Hat OpenShift 4 的官方圖表(可在 ARO4 Microsoft 頁面中找到):
讓我們安裝我們的第一個 ARO4 集群!
Azure 帳戶先決條件
首先,我們需要在 Azure 帳戶中設置幾項內容,例如生成 ServicePrincipals、增加限制以及定義要使用的區域。
為 ARO 安裝配置 Azure 基礎結構先決條件
當我們準備好上一步後,就可以在 Azure 中為我們的 ARO4 集群生成基礎資源先決條件了:
1
2
3
4
5
6
|
export LOCATION=eastus
export RESOURCEGROUP=aro-rg
export CLUSTER=rcarrata
export VNET_CIDR="10.0.0.0/22"
export MASTER_SUBNET_CIDR="10.0.0.0/23"
export WORKER_SUBNET_CIDR="10.0.2.0/23"
|
注意:當登錄彈出時,您需要在 Azure Dashboard 中使用您的憑據進行身份驗證。
1
2
3
|
az provider register -n Microsoft.RedHatOpenShift --wait
az provider register -n Microsoft.Compute --wait
az provider register -n Microsoft.Storage --wait
|
建立 Azure Red Hat OpenShift 4 叢集
開始之前
Azure Red Hat OpenShift 至少需要 40 個核心,才能建立和執行 OpenShift 叢集。 新 Azure 訂用帳戶的預設 Azure 資源配額不符合這項需求。 若要要求增加資源限制,請參閱標準配額:VM 系列的增加限制。
- 例如,若要檢查最小支援的虛擬機器系列 SKU 「標準 DSv3」的目前訂用帳戶配額:
1
2
3
4
|
LOCATION=eastus
az vm list-usage -l $LOCATION \
--query "[?contains(name.value, 'standardDSv3Family')]" \
-o table
|
1
2
3
|
CurrentValue Limit LocalName
-------------- ------- --------------------------
40 1000 Standard DSv3 Family vCPUs
|
驗證權限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
Azure CLI quickstart:
export GUID=hzdnk
export CLIENT_ID=bdf5480a-c661-451f-a2ce-81e448ce0ba8
export PASSWORD=Zz842xzC.7GWZS_xVZ3oQvg1~7PtoIcKVA
export TENANT=1ce7852f-dcf3-42bc-afe6-3bf81ab984fb
export SUBSCRIPTION=ede7f891-835c-4128-af5b-0e53848e54e7
export RESOURCEGROUP=openenv-hzdnk
curl -L https://aka.ms/InstallAzureCli | bash
az login --service-principal -u $CLIENT_ID -p $PASSWORD --tenant $TENANT
[
{
"cloudName": "AzureCloud",
"homeTenantId": "1ce7852f-dcf3-42bc-afe6-3bf81ab984fb",
"id": "ede7f891-835c-4128-af5b-0e53848e54e7",
"isDefault": true,
"managedByTenants": [
{
"tenantId": "b5ce0030-ec42-4a62-bc94-3025993e790c"
}
],
"name": "RHPDS Subscription - OpenTLC Tenant",
"state": "Enabled",
"tenantId": "1ce7852f-dcf3-42bc-afe6-3bf81ab984fb",
"user": {
"name": "bdf5480a-c661-451f-a2ce-81e448ce0ba8",
"type": "servicePrincipal"
}
}
]
|
- 創建資源組為 ARO4 對象(如 vnet 和子網,以及自己的 ARO4 對象)分配資源:
1
|
az group create --name $RESOURCEGROUP --location $LOCATION
|
1
2
|
az network vnet create --resource-group $RESOURCEGROUP \
--name aro-vnet --address-prefixes $VNET_CIDR
|
1
2
3
4
5
6
|
az network vnet subnet create \
--resource-group $RESOURCEGROUP \
--vnet-name aro-vnet \
--name master-subnet \
--address-prefixes $MASTER_SUBNET_CIDR \
--service-endpoints Microsoft.ContainerRegistry
|
1
2
3
4
5
6
|
az network vnet subnet create \
--resource-group $RESOURCEGROUP \
--vnet-name aro-vnet \
--name worker-subnet \
--address-prefixes $WORKER_SUBNET_CIDR \
--service-endpoints Microsoft.ContainerRegistry
|
1
2
3
4
5
|
az network vnet subnet update \
--name master-subnet \
--resource-group $RESOURCEGROUP \
--vnet-name aro-vnet \
--disable-private-link-service-network-policies true
|
安裝 ARO4
1
2
3
4
5
6
|
echo "Creating ARO Cluster... Please wait 40mins"
az aro create --resource-group $RESOURCEGROUP \
--name $CLUSTER --vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--pull-secret @pull-secret.txt
|
注意:安裝需要一個有效的 pull-secret。請訪問您的Cloud OpenShift Doshboard並獲取您的 pull-secret 令牌。
- 然後 az aro cli 將在 Azure Dashboard 中預配一個 ARO 對象:
- 自動地,它使用用於安裝的 Azure 對象創建了一個額外的 Azure 資源組,由 RH 和 MSFT 的 ARO SRE 管理:
- 在此資源組中,我們生成了提供和配置 ARO4 集群所需的資源:
訪問 API 和控制台
- 大約 40 分鐘後。我們將使用控制台和 API 準備好 ARO4 集群:
1
2
3
4
5
|
echo "List credentials for ARO Cluster"
az aro list-credentials \
--name $CLUSTER \
--resource-group $RESOURCEGROUP
echo ""
|
1
2
3
4
5
|
echo "List console for ARO cluster"
az aro show \
--name $CLUSTER \
--resource-group $RESOURCEGROUP \
--query "consoleProfile.url" -o tsv
|
1
2
|
apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)
echo "This is the API for your cluster: $apiServer"
|
1
2
3
4
|
[root@bastion ~]# az aro list -o table
Name ResourceGroup Location ProvisioningState WorkerCount URL
--------- --------------- ---------- ------------------- ------------- -----------------------------------------------------------------
aro-demo openenv-hdpnp eastus Succeeded 3 https://console-openshift-console.apps.yylin.io/
|