Skip to content

Note

文件更新時間: 20230204 測試版本: 4.10.50

如何部署 Azure Red Hat OpenShift

因為現行 terraform module 尚未合併完成,且 ansible 針對 aro module 有點過期,故採用 ansible + azure cli 的方式部署

標準流程

(Requried) 準備 sa 帳號

準備 1 個 Service Priciple Account

(Optional) 準備 Domain Name

如果你沒有自己的 DNS 要套上來的話,可以跳過此步驟

若使用 Azure Red Hat OpenShift 想要獲得到以下 URL

  • Web Console: https://console-openshift-console.apps.aro.aliez.tw/
  • OpenShift API Service: api.aro.aliez.tw

需自備 DNS Domain,例如 aro.aliez.tw,可以放置於 Azure DNS Zone 或者是其他 DNS 託管服務

安裝途中需使用下列指令獲得 OpenShift API Service 和 Web Console 會使用到的 ingressProfile

command.sh
az aro show -n $ARO_NAME -g $RESOURCE_GROUP --query "'{api:apiserverProfile.ip,ingress:ingressProfiles[0].ip}'"
output
$ az aro show -n one -g rg-aro-eastus --query '{api:apiserverProfile.ip, ingress:ingressProfiles[0].ip}'
{
  "api": "x.x.x.x",
  "ingress": "y.y.y.y"
}

當拿到這兩個 IP 的時候,則需要去 aro.aliez.tw Zone 裡面填寫 2 個 A Record,要注意 Name 裡面內容都不能修改

Name Type TTL Value
api A Record 3600 x.x.x.x
*.apps A Record 3600 y.y.y.y

這邊要注意 $ARO_NAME 並不會影響系統操作,他只是 Azure Resource Manager 上的一個名稱而已

查詢 kubeadmin 帳號

command.sh
az aro list-credentials \
  --name $ARO_NAME \
  --resource-group $RESOURCE_GROUP
output
$ az aro list-credentials -n one -g rg-aro-eastus
{
  "kubeadminPassword": "xxxx-yyyy-oooo-ffff",
  "kubeadminUsername": "kubeadmin"
}

查詢 Web Console URL

command.sh
az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv
output
$ az aro show --name one --resource-group rg-aro-eastus --query "consoleProfile.url" -o tsv
https://console-openshift-console.apps.aro.aliez.tw/

查詢 OpenShift API Server URL

command.sh
az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "apiserverProfile.url" -o tsv
output
$ az aro show --name one --resource-group rg-aro-eastus --query "apiserverProfile.url" -o tsv
https://api.aro.aliez.tw:6443/

用 oc 登入 Azure Red Hat OpenShift

command.sh
oc login https://{OpenShift API Server URL}:6443/ --username kubeadmin
output
$ oc login https://api.aro.aliez.tw:6443/ --username kubeadmin
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Authentication required for https://api.aro.aliez.tw:6443 (openshift)
Username: kubeadmin
Password:
Login successful.

Tips

Load Balancer

預設狀況下會安裝 2 個 Azure Load Balancer,皆為 SKU: Standard / Tier: Regional

一個是對外,一個是對內