--- title: '以公有雲(GCP)為範例的OpenShift安裝使用說明' disqus: hackmd --- 以公有雲(GCP)為範例的OpenShift安裝使用說明 === ## 索引 [TOC] ## 注意事項 * 此方式需要一張信用卡,因此若已有多個刀鋒式主機環境則可考慮以私有雲的方式去架設OpenShift,或是考慮混合雲架構來進行。 * 有條件免費試用資源: GCP 新用戶第一年 $300USD 的免費測試額度 * 有條件免費試用資源: OpenShift(OCP) 60天測試授權 ## 前置流程 * 準備啟用免費試用 https://cloud.google.com/free-trial       * Red Hat官網申請OpenShift帳號 ## 在Google Cloud Platform (GCP)上建立一個GCP專案,啟動API服務、設定DNS、設定GCP帳號限制、GCP專案所屬區域。 ### 在Google Cloud Platform (GCP)上建立一個GCP專案   ### 在Google Cloud Platform (GCP)上啟動API服務(API service Console service name) | API service | Console service name | Type | 預設啟用 | | ---- | ---- | ---- | ---- | Compute Engine API | compute.googleapis.com | SaaS & APIs | | Google Cloud APIs | cloudapis.googleapis.com | SaaS & APIs | | Cloud Resource Manager API | cloudresourcemanager.googleapis.com | | Google DNS API | dns.googleapis.com | | IAM Service Account Credentials API | iamcredentials.googleapis.com | | Identity and Access Management (IAM) API | iam.googleapis.com | | Service Management API | servicemanagement.googleapis.com | | Service Usage API | serviceusage.googleapis.com | | Google Cloud Storage JSON API | storage-api.googleapis.com | | Cloud Storage | storage-component.googleapis.com | * Compute Engine API <- 這個要拿來在GCP上建立虛擬機(因為OpenShift由多個主機(虛擬機)所構成)   * Google Cloud APIs <- 預設啟用,這個主要用於方便在GCP上進行操作管理  * Cloud Resource Manager API <- 用於方便管理在GCP上面所使用的資源   * Google DNS API <- 啟用Google的DNS管理服務   * IAM Service Account Credentials API <- 管理GCP專案的帳號權限使用   * Service Management API <- 預設啟用  * Service Usage API <- 預設啟用  * Google Cloud Storage JSON API <- 預設啟用  * Cloud Storage <- 預設啟用  ### 在Google Cloud Platform (GCP)上建立服務帳戶(service account)   :warning: 在這裡直接設定`Owner`權限是不太好的做法,管理權限會過大,在雲端管理上通常都是按照需求進行客製化最小權限的作法。   ### 產生服務帳戶的金鑰(key)      ### RedHat上部屬以及SSH-key     :warning: 按照上面流程操作,在此範例採用Linux,因為Windows部分流程不兼容 ```shell=sh m0724001@m0724001-virtual-machine:~/openshift_install$ ssh-keygen -t ed25519 -N '' -f openshift-key Generating public/private ed25519 key pair. Your identification has been saved in openshift-key Your public key has been saved in openshift-key.pub The key fingerprint is: SHA256:MKNQ5WJ0xLX2fwImv7xTbD0kyX2JBA6d0WVEVBPCNAE m0724001@m0724001-virtual-machine The key's randomart image is: +--[ED25519 256]--+ | o++....EO=*O+| | o o. .oo ++ .| | . o = o o.o. .| | o o = . +.o..| | . S +. + . | | + o+ o | | .oo .. | | ... o | | +o | +----[SHA256]-----+ m0724001@m0724001-virtual-machine:~/openshift_install$ ls openshift-client-linux.tar.gz openshift-gcp-dev-ad13d9330269.json openshift-install-linux.tar.gz openshift-key openshift-key.pub pull-secret.txt m0724001@m0724001-virtual-machine:~/openshift_install$ cat openshift-key.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPlojWuaDNNvPmWPHVvzRmLlu7ixkku+K2nJBq895gP m0724001@m0724001-virtual-machine m0724001@m0724001-virtual-machine:~/openshift_install$ eval "$(ssh-agent -s)" Agent pid 23844 m0724001@m0724001-virtual-machine:~/openshift_install$ ssh-add id_rsa/openshift-key Identity added: id_rsa/openshift-key (m0724001@m0724001-virtual-machine) ``` 驗證GCP連接 ```shell=bash m0724001@m0724001-virtual-machine:~/openshift_install$ export GOOGLE_APPLICATION_CREDENTIALS="/home/m0724001/openshift_install/openshift-gcp-dev-ad13d9330269.json" m0724001@m0724001-virtual-machine:~/openshift_install$ gcloud auth list No credentialed accounts. To login, run: $ gcloud auth login `ACCOUNT` m0724001@m0724001-virtual-machine:~/openshift_install$ gcloud auth activate-service-account --key-file=/home/m0724001/openshift_install/openshift-gcp-dev-ad13d9330269.json Activated service account credentials for: [openshift-service-account@openshift-gcp-dev.iam.gserviceaccount.com] m0724001@m0724001-virtual-machine:~/openshift_install$ gcloud auth list Credentialed Accounts ACTIVE ACCOUNT * openshift-service-account@openshift-gcp-dev.iam.gserviceaccount.com To set the active account, run: $ gcloud config set account `ACCOUNT` ``` 解壓縮下載的檔案 ```shell=bash m0724001@m0724001-virtual-machine:~/openshift_install$ tar xf openshift-install-linux.tar.gz m0724001@m0724001-virtual-machine:~/openshift_install$ tar xf openshift-client-linux.tar.gz m0724001@m0724001-virtual-machine:~/openshift_install$ ls kubectl oc openshift-client-linux.tar.gz openshift-gcp-dev-ad13d9330269.json openshift-install openshift-install-linux.tar.gz openshift-key openshift-key.pub pull-secret.txt README.md ``` ### 客製化安裝參數 ```yaml apiVersion: v1 baseDomain: gcp.fuzetea.xyz controlPlane: hyperthreading: Enabled name: master platform: gcp: type: e2-standard-4 zones: - asia-east1-a - asia-east1-c osDisk: diskType: pd-ssd diskSizeGB: 80 replicas: 3 compute: - hyperthreading: Enabled name: worker platform: gcp: type: e2-standard-4 zones: - asia-east1-a - asia-east1-c osDisk: diskType: pd-standard diskSizeGB: 80 replicas: 3 metadata: name: openshift-cluster networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 networkType: OpenShiftSDN serviceNetwork: - 172.30.0.0/16 platform: gcp: projectID: openshift-gcp-dev region: asia-east1 pullSecret: '{"auths":{"cloud.openshift.com":{"auth":"b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfOGQxM2U3NDVkYmY0NGZmNGFmMmZhYjUxMWVkM2U4OGQ6VU04OUVEUVJZNFUyNzcwUVZFWTFES0VBUTE0UzlEQkszQ0JWNlAyMzNWRDY3SUxPVEE3TEdTV1VDM0FKVU05RQ==","email":"m0724001@gm.nuu.edu.tw"},"quay.io":{"auth":"b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfOGQxM2U3NDVkYmY0NGZmNGFmMmZhYjUxMWVkM2U4OGQ6VU04OUVEUVJZNFUyNzcwUVZFWTFES0VBUTE0UzlEQkszQ0JWNlAyMzNWRDY3SUxPVEE3TEdTV1VDM0FKVU05RQ==","email":"m0724001@gm.nuu.edu.tw"},"registry.connect.redhat.com":{"auth":"fHVoYy1wb29sLWY5NDdiNDU2LTU3ZWUtNDdlZS1hMDc1LTRiY2RiYWIwNTc1ZTpleUpoYkdjaU9pSlNVelV4TWlKOS5leUp6ZFdJaU9pSmlZMlppT0dZelpURTRNR0UwWlRrNFlXUm1PRFJrT1RSaFpqa3pZV1V6WXlKOS5ILXlyaGlTVWpDaVREckVUSnJzUUFNZ3lqdUxDdHZOem1WZFRKZFpEOWhnclM0bG9KZGNyMGZSYnpKbUVoQ3FxLWxIOTZQVVJnSk9US2x4Sy0wMVc2MnU0YUdmTjEzQmw2U25FY1hJVTFlR2lyZUpjemlsMGdpazhGSl9BOEhBbmFyNXFGdzNNeV8yN21oTDJOUmUtVnBsTEVDWm1kZ0xaQzBPM3l2Rk5nX1U1N3Q1NUMycjJ3RjhkSWNLbG90Z2hKcmR3YUo2UzlHTTdjRGpKVno3MzdvcVRJa1lTZ2Rzd2JHZ0RkX0tkZjFBOFh4WkJMLUNRSmdRQlZQQkR4bU04TGpuRUR2YVU5V21xRmtpWjBOUXRUUW12cmlEWXYybnNaa3R2Uml2ZTFRdDRRbVVFVkVxUUxodk44SnFHZTUxemVIRXExVkN5ZTNEVTJyLXdsRzBPaVZxa3AxS1dZOVh4ZTVCTGJwU3hYNXVyTF9RVWJzel9Bc2dkR05nR2F0MGdzTUZ1aDNKeTF6bEF1emE4VURRRnpjSGxvZno2ZW9sOGhFMmZ5UDQ1THZLSEdJeVRMQzhfUmdrZ0Q2MXNFeTlBMjFERWtJU0NPWWFIQWthdkFFNDJIWlVUOUV2Q0oxTEtiamxVZXMxUEdsY3JnaEprVEttbUZoLWtKenNRVHV5MkxYSjlsb3luSmd4VDc2TmNEYXhRcExCRWh4SGNWWmhnUnBmMWh2RlIwdHo1dUlPSFNraHRnREh6d01ERWlSMXNnWWVqZjl1RER5MElKczhPZjdKa2dOdkN2TmhNbGpHOFJ1ZlBJUHFqejdCZERRZVh5eG1ua0FHa0N6T0VKX1dDV0dGdlk1THNSbXdtZHZXYUYySGVCM1RPdW9saF9qX1pGdW40a05Sd3hqQQ==","email":"m0724001@gm.nuu.edu.tw"},"registry.redhat.io":{"auth":"fHVoYy1wb29sLWY5NDdiNDU2LTU3ZWUtNDdlZS1hMDc1LTRiY2RiYWIwNTc1ZTpleUpoYkdjaU9pSlNVelV4TWlKOS5leUp6ZFdJaU9pSmlZMlppT0dZelpURTRNR0UwWlRrNFlXUm1PRFJrT1RSaFpqa3pZV1V6WXlKOS5ILXlyaGlTVWpDaVREckVUSnJzUUFNZ3lqdUxDdHZOem1WZFRKZFpEOWhnclM0bG9KZGNyMGZSYnpKbUVoQ3FxLWxIOTZQVVJnSk9US2x4Sy0wMVc2MnU0YUdmTjEzQmw2U25FY1hJVTFlR2lyZUpjemlsMGdpazhGSl9BOEhBbmFyNXFGdzNNeV8yN21oTDJOUmUtVnBsTEVDWm1kZ0xaQzBPM3l2Rk5nX1U1N3Q1NUMycjJ3RjhkSWNLbG90Z2hKcmR3YUo2UzlHTTdjRGpKVno3MzdvcVRJa1lTZ2Rzd2JHZ0RkX0tkZjFBOFh4WkJMLUNRSmdRQlZQQkR4bU04TGpuRUR2YVU5V21xRmtpWjBOUXRUUW12cmlEWXYybnNaa3R2Uml2ZTFRdDRRbVVFVkVxUUxodk44SnFHZTUxemVIRXExVkN5ZTNEVTJyLXdsRzBPaVZxa3AxS1dZOVh4ZTVCTGJwU3hYNXVyTF9RVWJzel9Bc2dkR05nR2F0MGdzTUZ1aDNKeTF6bEF1emE4VURRRnpjSGxvZno2ZW9sOGhFMmZ5UDQ1THZLSEdJeVRMQzhfUmdrZ0Q2MXNFeTlBMjFERWtJU0NPWWFIQWthdkFFNDJIWlVUOUV2Q0oxTEtiamxVZXMxUEdsY3JnaEprVEttbUZoLWtKenNRVHV5MkxYSjlsb3luSmd4VDc2TmNEYXhRcExCRWh4SGNWWmhnUnBmMWh2RlIwdHo1dUlPSFNraHRnREh6d01ERWlSMXNnWWVqZjl1RER5MElKczhPZjdKa2dOdkN2TmhNbGpHOFJ1ZlBJUHFqejdCZERRZVh5eG1ua0FHa0N6T0VKX1dDV0dGdlk1THNSbXdtZHZXYUYySGVCM1RPdW9saF9qX1pGdW40a05Sd3hqQQ==","email":"m0724001@gm.nuu.edu.tw"}}}' fips: false sshKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPlojWuaDNNvPmWPHVvzRmLlu7ixkku+K2nJBq895gP m0724001@m0724001-virtual-machine ``` ### 安裝結果 ```shell=bash m0724001@m0724001-virtual-machine:~/openshift_install$ cp install-config-pro.yaml install-config.yaml m0724001@m0724001-virtual-machine:~/openshift_install$ ./openshift-install create cluster --log-level=info INFO Credentials loaded from gcloud CLI defaults INFO Consuming Install Config from target directory INFO Creating infrastructure resources... INFO Waiting up to 20m0s for the Kubernetes API at https://api.openshift-cluster.gcp.fuzetea.xyz:6443... INFO API v1.21.1+a620f50 up INFO Waiting up to 30m0s for bootstrapping to complete... INFO Destroying the bootstrap resources... INFO Waiting up to 40m0s for the cluster at https://api.openshift-cluster.gcp.fuzetea.xyz:6443 to initialize... INFO Waiting up to 10m0s for the openshift-console route to be created... INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/m0724001/openshift_install/auth/kubeconfig' INFO Access the OpenShift web-console here: https://console-openshift-console.apps.openshift-cluster.gcp.fuzetea.xyz INFO Login to the console with user: "kubeadmin", and password: "zwarS-NESNB-hDr6p-R2gXU" INFO Time elapsed: 31m31s m0724001@m0724001-virtual-machine:~/openshift_install$ ``` ## 登入並使用 https://console-openshift-console.apps.openshift-cluster.gcp.fuzetea.xyz  帳號: `kubeadmin` 密碼: `zwarS-NESNB-hDr6p-R2gXU` ## Reference and FAQ :::info **Find this document incomplete?** Leave a comment! ::: ###### tags: `公有雲(GCP)` `Documentation`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.