要學習 DevOps 的進階技術,Kubernetes 概念必不可少,但在本地端安裝 Kubernetes 的過程相對繁瑣,使用上也因為網路資源等問題而較為麻煩,今天就透過 GCP 上的 Kubernetes 服務,來輕鬆快速搭起 k8s 環境。
Kubernetes(k8s) 是由 Google 開發的開源系統,用於自動部屬、擴展及管理容器化應用程式,目的是為了降低管理計算資源、網路等基礎資源所造成的負擔,讓使用者把重點放在容器的維運設置。舉一些使用 Kubernetes 帶來的好處
了解了 Kubernetes 後要如何開始呢 ? 這裡介紹如何建置 Kubernetes 環境的各種方法
個人電腦: 使用 minikube
可以在本地快速架起一個 k8s 環境
VM 叢集: 若想要在多台伺服器上安裝,可以使用 kubeadm
的方式
線上 Lab : Docker提供了 Play with Kubernetes 的 k8s Lab,只要使用 Github 或 Docker 帳號就能登入
雲端服務: GKE、EKS 等等,只要下個指令就能快速建立 k8s 叢集
透過 Google Kubernetes Engine 服務,就可以輕鬆部屬、管理 Kubernetes,下面就來學習如何使用。
進入 GCP 網站
點擊console左上角 -> Kubernetes Engine
開啟後就能使用 GKE 了,我們使用 Cloud Shell 來操作。
進入 Cloud Shell 網站,點擊終端機輸入指令
列出所有的 project ,找到之前所創建專案的 PROJECT_ID
gcloud projects list
PROJECT_ID
成功開啟了專案的 Terminal,從這裡就能對專案進行操作。
gcloud config set compute/zone <zone>
設定計算資源預設地區gcloud config set compute/zone asia-east2-a
gcloud container clusters create <name>
建立 K8s clustergcloud container clusters create lab
(輸出結果)
Creating cluster lab in asia-east2-a...done.
Created [https://container.googleapis.com/v1/projects/ninth-bonito-324214/zones/asia-east2-a/clusters/lab].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/asia-east2-a/lab?project=ninth-bonito-324214
kubeconfig entry generated for lab.
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
lab asia-east2-a 1.20.9-gke.701 34.92.107.113 e2-medium 1.20.9-gke.701 3 RUNNING
預設會建立3台 2CPU、4G 記憶體的 VM,有著不小的費用支出,若你擔心會超過免費用量,可以隨時到帳單查看你剩餘額度。
接著用gcloud
將 credentials 移動到 Cloud Shell 裡來取得叢集驗證,我們就能用 Kubectl
命令行工具對 k8s 叢集進行操作。
gcloud container clusters get-credentials lab
(輸出結果)
Fetching cluster endpoint and auth data.
kubeconfig entry generated for lab.
完成後就能使用kubectl
了。
kubectl get nodes
(輸出結果)
NAME STATUS ROLES AGE VERSION
gke-lab-default-pool-9638ad20-l69n Ready <none> 7m50s v1.20.9-gke.701
gke-lab-default-pool-9638ad20-tnlg Ready <none> 7m50s v1.20.9-gke.701
gke-lab-default-pool-9638ad20-x3jm Ready <none> 7m50s v1.20.9-gke.701
今天成功的架起了 Kubernetes 環境,在之後幾天中我們就會對 k8s 的各式元件做介紹。