iT邦幫忙

2023 iThome 鐵人賽

DAY 9
1
Software Development

Google Cloud Platform 零基礎入門系列 第 9

GCP 零基礎入門 (9) - 運算服務 - Google Kubernetes Engine (GKE)

  • 分享至 

  • xImage
  •  

哈囉大家好,我是古古

在前幾篇文章中,分別去介紹了 Google Cloud 中的 IaaS (Compute Engine)、PaaS (App Engine)、FaaS (Cloud Functions) 這三大經典服務,而這篇文章我們會接著來介紹,在 Google Cloud 中的強力武器,一個兼具 IaaS 和 PaaS 優點的運算服務:Google Kubernetes Engine

什麼是 Docker 和 Kubernetes?


在介紹 Google Kubernetes Engine (GKE) 之前,要先跟大家介紹一下什麼是 Docker 和 Kubernetes

什麼是 Docker?

所謂的 Docker,就是「把你寫的程式和這隻程式需要的環境,通通裝進一個容器來保存」,達到應用程式之間的隔離

舉例來說,假設我們想要執行某個程式時,最一開始就是要安裝他的環境,譬如說這隻 python 程式要用 python2 來運行,那我們就得先安裝 python2 的環境,但是當我們想要執行另一隻程式時,他需要的可能是 python3 的環境,因此我們就又得跑去安裝 python3 的環境,才能夠回頭來執行那隻程式

但這時候我們可能就會想,明明我們只是想要執行程式啊!但在執行程式之前卻要被 python2 和 python3 這種環境問題給搞崩潰,太不值得了!!

因此就有工程師發想出了 Docker,希望可以透過「容器化」的概念,將程式和這隻程式所需要的開發環境 (ex: python2 或是 python3),通通給包進一個「容器」裡,這樣當別人想要運行這隻程式時,就不需要再去安裝 python 環境了,只需要「直接運行這個容器」,就可以在運行容器中的程式時、又免於被環境折騰的痛苦了

所以 Docker 就是透過 「容器化」 的方式,把「你寫的程式和這隻程式需要的環境,通通裝進一個容器來保存」,因此其他人想要運行你的程式時,就直接運行該容器即可,這樣就可以免除環境安裝的困擾,並且也可以「達到應用層級的隔離」

什麼是 Kubernetes?

了解了 Docker 之後,接著就可以接著來看 Kubernetes 的用途

Kubernetes 其實就是「Docker 的集群管理工具」,也就是假設你有 100 個 Docker 的 container 要管理,你就可以使用 Kubernetes 這套工具,來方便你管理這 100 個 Docker container 這樣

另外有趣的是,可能是因為 Kubernetes 的發音實在太長了XD,因此他也常常被簡稱為是 k8s,因此 k8s 和 Kubernetes,他們指的是同一個東西

補充:這邊介紹的僅是 Docker 和 Kubernetes 的概念,其實這部分已經有點偏向 DevOps 維運那邊了,我自己也涉獵不多🥹,大家有興趣可以參考其他 DevOps 大神的文章

什麼是 Google Kubernetes Engine (GKE) ?


了解了 Docker 和 Kubernetes 的概念之後,接著就可以回頭來介紹 Google Kubernetes Engine (GKE) 了!

所謂的 Google Kubernetes Engine (GKE),他其實就只是提供了「雲端版的 Kubernetes」服務,讓大家可以用 Google Kubernetes Engine 來管理我們放在雲上的 Docker 們,僅此而已~

https://ithelp.ithome.com.tw/upload/images/20230923/20151036qINMrM0HYr.png

Google Kubernetes Engine (GKE) 的特性


前面提到,Google Kubernetes Engine 其實就只是一個「雲端版的 Kubernetes」,讓我們可以使用 Google Kubernetes Engine 去管理雲上的 Docker 們

但是由於 Docker 擁有「容器化」的特性,因此我們是可以很容易的將我們所開發的程式,透過 Docker 的容器化,自己將這些程式去封裝成容器,最後交由 Google Kubernetes Engine 去管理的

也因為如此,所以 Google Kubernetes Engine 既有容器的概念 (有點 PaaS),但是我們又保有客製化容器的能力 (有點 IaaS),因此 Google 自己也把 Google Kubernetes Engine 定位在介於 IaaS 和 PaaS 中間,並且也在官方介紹中提到「It scales like PaaS but gives you nearly the same flexibility as IaaS」,可以說是開發者的超強力武器!!

https://ithelp.ithome.com.tw/upload/images/20230923/20151036NeWykc2WRT.png

補充:這只是我的個人猜想,我猜可能是因為 Google Kubernetes Engine 的推出,所以 App Engine 才會漸漸式微,畢竟 Google Kubernetes Engine 可是兼具了 IaaS 和 PaaS 的優點,因此 App Engine 這種限制較多的經典 PaaS 服務,相對就比較沒人在使用了

Google Kubernetes Engine 的優點


兼具 IaaS 和 PaaS 的優點

如上所述,Google Kubernetes Engine 兼具了 IaaS 的客製化能力,但也保有了 PaaS 優秀的容器化管理,因此讓 Google Kubernetes Engine 成為了一個強力的開發工具

Google Kubernetes Engine 的缺點


上手較難,需要 Docker 和 Kubernetes 的相關知識

由於 Google Kubernetes Engine 是建立在 Docker 和 Kubernetes 之上,因此要使用這項強力武器就會需要工程師具備這方面的知識,某種層面來說也是提升了他的使用難度

總結


這篇文章先介紹了 Docker 和 Kubernetes 的概念,接著介紹了 Google Kubernetes Engine 服務的用途,並且介紹了他是如何兼具 IaaS、PaaS 之間的優點,成長為強大的運算服務

介紹完強大的 Google Kubernetes Engine 之後,下一篇文章就會來介紹最後一個常見的運算服務:Cloud Run,相較於 Google Kubernetes Engine 是去融合 IaaS 和 PaaS 的優點,Cloud Run 則是嘗試去強化 FaaS 的功能,那我們就下一篇文章見啦!

相關連結



上一篇
GCP 零基礎入門 (8) - 運算服務 - Cloud Functions
下一篇
GCP 零基礎入門 (10) - 運算服務 - Cloud Run
系列文
Google Cloud Platform 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言