iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
DevOps

DevOps 好想學!新手也能打造雲端 Study Lab系列 第 11

Day11 - Google Kubernetes Engine 輕鬆架起 k8s 環境

前言

要學習 DevOps 的進階技術,Kubernetes 概念必不可少,但在本地端安裝 Kubernetes 的過程相對繁瑣,使用上也因為網路資源等問題而較為麻煩,今天就透過 GCP 上的 Kubernetes 服務,來輕鬆快速搭起 k8s 環境。

Kubernetes 介紹

https://ithelp.ithome.com.tw/upload/images/20210911/20139235jlsmkgYK86.png

Kubernetes(k8s) 是由 Google 開發的開源系統,用於自動部屬、擴展及管理容器化應用程式,目的是為了降低管理計算資源、網路等基礎資源所造成的負擔,讓使用者把重點放在容器的維運設置。舉一些使用 Kubernetes 帶來的好處

  • 可大規模部屬、管理容器
  • 提供負載平衡機制,提升應用擴展性
  • 自我監控,重新啟動失效容器
  • 可以輕鬆與 DevOps 整合達成自動化

了解了 Kubernetes 後要如何開始呢 ? 這裡介紹如何建置 Kubernetes 環境的各種方法

  • 個人電腦: 使用 minikube 可以在本地快速架起一個 k8s 環境

  • VM 叢集: 若想要在多台伺服器上安裝,可以使用 kubeadm 的方式

  • 線上 Lab : Docker提供了 Play with Kubernetes 的 k8s Lab,只要使用 Github 或 Docker 帳號就能登入

  • 雲端服務: GKE、EKS 等等,只要下個指令就能快速建立 k8s 叢集

建立 Google Kubernetes Engine

透過 Google Kubernetes Engine 服務,就可以輕鬆部屬、管理 Kubernetes,下面就來學習如何使用。

  1. 進入 GCP 網站

  2. 點擊console左上角 -> Kubernetes Engine

https://ithelp.ithome.com.tw/upload/images/20210911/20139235l4Os7Ypwj2.png

  1. 點擊啟用 API

https://ithelp.ithome.com.tw/upload/images/20210911/2013923533xiGoSXbm.png

開啟後就能使用 GKE 了,我們使用 Cloud Shell 來操作。

  1. 進入 Cloud Shell 網站,點擊終端機輸入指令

  2. 列出所有的 project ,找到之前所創建專案的 PROJECT_ID

gcloud projects list

  1. 點擊倒三角形->點選專案的 PROJECT_ID

成功開啟了專案的 Terminal,從這裡就能對專案進行操作。

  1. 使用 gcloud config set compute/zone <zone> 設定計算資源預設地區
gcloud config set compute/zone asia-east2-a
  1. 使用 gcloud container clusters create <name> 建立 K8s cluster
gcloud 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 叢集進行操作。

  1. 取得 clusters credentials
gcloud container clusters get-credentials lab

(輸出結果)

Fetching cluster endpoint and auth data.
kubeconfig entry generated for lab.

完成後就能使用kubectl了。

  1. 查看所有運行節點
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 的各式元件做介紹。


上一篇
Day10 - 基礎篇總結 ,CI/CD 的功用為何 ?
下一篇
Day12 - Google Kubernetes Engine 基礎 - Pod 建置
系列文
DevOps 好想學!新手也能打造雲端 Study Lab30

尚未有邦友留言

立即登入留言