iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

昨日介紹了 Pod,但有一個最重要的觀念未提及到,也就是 Pod 是 ephemeral 的資源,Ephemeral 中文譯為"短暫的",這是因為 Pod 容易因自身失敗或所待的 Node 發生故障或某種原因而被刪除、替換,然而真正上線產品幾乎無法容許短暫的失敗,因此 Kubernetes 有一另種資源,可以維持一定數量的 Pod 存活。


Replicaset

ReplicaSet 一樣由設定檔定義,包括由 selector 指定如何識別可取得的 Pod、replicas 表示需要維護多少副本,以及當 Replicaset 需要建立新 Pod 時,會以 template 中所定義的模板去 Create。

以下為官網 ReplicaSet yaml file example,其中黃圈及代表 該 Pod 的副本數量,即有 3 個一模一樣的 Pod,而紅框則是指定 Pod 的模板,也就是要以什麼樣的規格、要 run 甚麼 container 在該 Pod 中,並以此作為基礎再行複製。

https://ithelp.ithome.com.tw/upload/images/20230922/20163282iyCVwxTBdo.jpg

官方不建議單使用 Replicaset,建議搭配 Deployment

如何使用 ReplicaSet?

官方會建議搭配 Deployment 此資源一起使用 Replicaset,是因為很多時候產品不是只要有副本即可解決所有問題,舉凡像是若是有滾動式更新(rolling update)的需求,則只有在 Deployment 上有支援,除此之外,Deployment還支援更多好用的功能,因此官方建議非必要不要單獨使用 ReplicaSet,而是使用 Deployment 取代,並將 ReplicaSet 的資訊設定到 Deployment 的 spec 中。


補充概念

後續在了解 Kubernetes API 時,需要對下列名詞 Group、Version、Kind 以及 Resource 有個概念,會更容易理解各個部份所代表的意涵。

  • Group: 代表資源組
  • Version: 版本號
    1. Alpha: 內部測試版本。
    2. Beta: 經歷官方和社群測試,相對穩定的版本。
    3. Stable: 正式發布版本。
$ kubectl api-versions
# list all versions
# Output may like below
---------
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
autoscaling/v2
batch/v1
  • Kind: 資源種類
  • Resource: 資源
    1. Core Resource: 核心資源並無 group 的概念
    2. Non-core Resource: 舉凡像是 Deployment、Statefulset、deamonset…等。
$ kubectl api-resources
# list all resources
# Output may like below
---------
NAME                              SHORTNAMES   APIVERSION                             NAMESPACED   KIND
pods                              po           v1                                     true         Pod
services                          svc          v1                                     true         Service
apiservices                                    apiregistration.k8s.io/v1              false        APIService
deployments                       deploy       apps/v1                                true         Deployment
replicasets                       rs           apps/v1                                true         ReplicaSet

OK. 今天先醬囉~

Age wrinkles the body. Quitting wrinkles the soul.
共勉之


上一篇
[Day 6]. Pod 2
下一篇
[Day 8.] Deployment
系列文
Way to Golang & Kubernetes 11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言