# LAB 2-2 :Install Haproxy for OCP4 on GCP ## 先前準備 + 1 . 擁有GCP billing account 可以申請 quote 調整,以及所需的GCP專案 + 2 . 以瀏覽器登入 GCP,建立或打開要安裝OCP (OpenShift)的專案。打開專案的雲端 VM:console SSH (瀏覽器),進行下列安裝步驟 ## 需親自在 Web Console 上操作的設定 + 若您的 GCP Billing Account 仍在試用期間,可以使用的資源受限,無法完成以下作業。故請先同意 GCP試用 Credits 用完後繼續扣信用卡支付費用,才能調高 GCP 可使用資源。 + 請先在 GCP Web Console 切換專案至 Lab 專案,即「systex-lab-xxxx」,而非「我的專案」 + 點選此連結 IAM & Admin --> 配額「[asia-east1](https://console.cloud.google.com/iam-admin/quotas?folder&organizationId&service=compute.googleapis.com&location=asia-east1)」或是 「[asia-east2](https://console.cloud.google.com/iam-admin/quotas?folder&organizationId&service=compute.googleapis.com&location=asia-east2)」頁面,已設定配額過濾條件: + 服務 --> Compute Engine API (先清除全選,再鉤選此項) + 位置 --> 同 Lab1 指定的 $GOOGLE_REGION + 請先鉤選下列項目,再點擊「編輯配額」按鈕。填寫如下數值,先按「完成」再按「提交要求」。送出後約5分鐘後即獲通過。 + Computer Engine API (CPUs) --> 28 vCPU 以上 建議 32 vCPU + Persistent Disk SSD (GB) --> 896GB 以上 建議 1TB + Static IP addresses --> 4個以上 ![](https://i.imgur.com/bfjtyHK.jpg) ![](https://i.imgur.com/jOKUsjE.jpg) ![](https://i.imgur.com/7upEDGE.jpg) ## 在GCP 上建立VM 當Haproxy 來充當 sub domain ``` # 建立 vm 的start script wget -O haprxoy-gcp-vm.sh https://raw.githubusercontent.com/harryliu123/devops-hands-on/master/haprxoy-gcp-vm.sh ## 新增EIP (若是 Enable API 未超過20分鐘,以下指令可能出錯) gcloud compute addresses create haproxyeip --region $GOOGLE_REGION haproxyeip=$(gcloud compute addresses list |grep haproxyeip | awk -F" " '{print $2}') ## 建立VM:此作業可能需要進互動輸入,相關選項請都輸入 y即可 gcloud compute instances create haproxy \ --machine-type=f1-micro \ --metadata-from-file startup-script=haprxoy-gcp-vm.sh \ --address $haproxyeip # 此作業可能會需要2~3分鐘完成 ``` ``` # 取得VM IP 充當 domain vmip=$(gcloud compute instances list --filter="name=(haproxy)" --format="value(networkInterfaces[0].accessConfigs[0].natIP)") GCP_DOMAIN=${vmip}.nip.io echo 'GCP_DOMAIN='${vmip}'.nip.io' >> ~/.my-env echo "export \$(cat .my-env|xargs)" | tee -a ~/.profile > /dev/null 2>&1 echo "將GCP_DOMAIN變更為 : " ${vmip}.nip.io ## 透通 haproxy firewall rule 如用於正式環境請勿參照此 Lab 的 Allow all gcloud compute --project=$GCP_PROJECT firewall-rules create allow-haproxy --direction=INGRESS --priority=100 --network=default --action=ALLOW --rules=all --source-ranges=0.0.0.0/0 ``` ## 在 GCP cloud dns上建立 OCP 所需 DNS sub domain ``` gcloud dns managed-zones create openshift4-domain --dns-name ${GCP_DOMAIN}. --description "openshift 4 domain" ``` ## 查看 GCP 為此 Sub Domain 配置的 DNS 主機 ``` gcloud dns managed-zones describe openshift4-domain ## 輸出應該與下列資訊相似 # description: openshift 4 domain # dnsName: xx.xx.xx.xx.nip.io ## 請確認此欄有值 ... # visibility: public ## 請確認此欄之值為 public,才能從GCP之外存取 OCP ```