โอ๊ยยยย...อยากใช้งาน Docker แบบคนอื่นเขาบ้าง แต่ศัพท์เทคนิคเยอะแยะไปหมด มึนหมดแล้ววว 😖😰
.
Don't worry จ้าเพื่อน ๆ เพราะวันนี้แอดจะมารวบรวม 10 คำศัพท์เด็ด ๆ ที่ควรรู้ก่อนจะใช้งาน Docker ให้เพื่อน ๆ มือใหม่ได้ดูกัน หากอยากรู้แล้วว่ามีอะไรบ้าง ไปดูกันเลยยย !!
.
ก่อนจะไปเข้าเนื้อหากัน เรามารู้จักเจ้า Docker กันแบบคร่าว ๆ ก่อนเนอะ
.
ลองนึกภาพง่าย ๆ เมื่อก่อนหากเราอยากรัน Service อะไรสักอย่างนึง เราจะต้องจำลองสภาพแวดล้อมของเครื่อง โดยใช้ Virtual Machine เพื่อจำลองทั้ง OS ให้รองรับกับการรัน Service นั้น ๆ แต่เจ้า Docker มันทำได้ง่ายกว่านั้น เพราะมันจะใช้การจำลองสภาพแวดล้อมบน Server ไม่ต้องใช้พื้นที่และทรัพยากรเยอะเหมือน VM อีกต่อไป แถมยังมีขนาดเล็ก ติดตั้งได้รวดเร็ว รองรับทั้ง MacOS, Windows, และ Linux นั่นเอง !! เจ๋งสุด 👍
.
🔥 ไปดูกันเลยว่ามีศัพท์อะไรที่มือใหม่ควรรู้ก่อนใช้งาน Docker บ้าง…
.
.
📃 Docker Images
.
เป็นต้นแบบที่ใช้สร้าง Docker Containers ซึ่งจะเก็บการตั้งค่าของสภาพแวดล้อม และการ Config ค่าต่าง ๆ ที่จำเป็นสำหรับการรัน Service จะทำงานเมื่อมีการเรียกใช้ที่ Docker Containers
.
.
📃 Docker Containers
.
เปรียบเสมือนกล่องที่รวบรวมแอปพลิเคชัน ค่า Config และสภาพแวดล้อมที่จำเป็นต่อการทำงาน ที่สร้างจาก Docker Images
.
.
📃 Dockerfiles
.
เป็นเอกสารที่รวบรวมการใช้งานและคำสั่งทั้งหมด เพื่อใช้ในการสร้าง Docker Images
.
.
📃Docker Registry
.
คือบริการโฮสต์ที่ใช้เก็บ Images Repository ทำให้เราสามารถ Push หรือ Pull Repository ผ่านเครือข่ายได้ สามารถใช้งานผ่าน Docker Hub และ คำสั่ง docker search
.
.
📃 Docker Repository
.
เป็นที่เก็บชุดของ Docker images สามารถทำการ Push หรือ Pull ผ่าน Docker Registry ได้
.
.
📃 Volumes
.
ข้อมูลไดเร็กทอรี่ที่อยู่ภายใน Docker Containers ใช้เพื่อรักษาข้อมูลใน Containers มีทั้งหมด 3 ประเภท คือ
🔸 Host volume - เป็น volume ของ Docker Host สามารถเข้าถึงได้จาก Containers
🔸 Named volume - เป็น volume ที่ใช้จัดการตำแหน่งบนดิกส์แบบระบุชื่อ
🔸 Anonymous volume - คล้ายกับ Named volume แต่จะไม่มีการระบุชื่อ
.
.
📃 Docker Compose
.
เป็นคำสั่งที่ใช้ในการสร้างหลาย ๆ Containers ขึ้นมาในครั้งเดียว ซึ่งจะมีการเซ็ท Config และ Service ต่าง ๆ ไว้เรียบร้อยแล้วในไฟล์ docker-compose.yml โดยไม่ต้องมานั่ง Config ทีละอันให้เสียเวลานั่นเอง
.
.
📃 Docker Swarm
.
เป็นเครื่องมือที่ช่วยรัน Docker หลาย ๆ ตัวได้พร้อมกันในสภาพแวดล้อมเดียวกัน
.
.
📃 Swarm
.
เป็นกลุ่มของ Docker Engine ที่ทำงานใน Swarm Mode
.
.
📃 Swarm Mode
.
เป็นโหมดที่ใช้จัดการ Cluster Management และ Orchestration ที่อยู่ใน Docker Engine เมื่อเราสร้าง Swarm ใหม่ หรือรวมโหนดต่าง ๆ เข้ากับ Swarm เจ้า Docker Engine ก็จะทำงานอยู่ใน Swarm Mode นั่นเอง
.
.
และทั้งหมดนี้คือคำศัพท์พื้นฐานสำหรับมือใหม่หัดใช้ Docker หวังว่าจะเป็นประโยชน์กับเพื่อน ๆ นะ หากใครมีคำอื่น ๆ อยากจะเพิ่มเติม สามารถคอมเมนต์มาพูดคุยกันได้เลย ❤️
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#Docker #VM #BorntoDev
同時也有6部Youtube影片,追蹤數超過2萬的網紅賴阿奇,也在其Youtube影片中提到,我無法想像沒有編年史的日子 = = 我的實況連結stream link: https://www.twitch.tv/freetitude 實況精華連結HighLight: https://www.twitch.tv/freetitude/videos?filter=highlights&sort...
cluster server 在 矽谷牛的耕田筆記 Facebook 的精選貼文
ref: https://loft.sh/blog/the-cost-of-managed-kubernetes-a-comparison/
本篇文章探討不同 Cloud Provider kubernetes 服務的差異,作者列舉了四個常見的 kubernetes 服務,包含 GKE, EKS, AKS 以及 DOKS。
這四個 kubernetes 服務所部署的 Kubernetes 叢集都有獲得 CNCF Kubernetes Certification 的認證,不同 Cloud Provider 都有自己的優缺點。
使用 Kubernetes 服務帶來的好處就是使用者通常不太需要去擔心如何處理
1. Kubernetes 核心元件之間的 Certificate (API Server, Controller, Scheduler, Kubelet ...etc)
2. 動態調整 Kubernetes 節點
3. 相較於單純靠社群, Cloud Provider 可以提供更快速且更好的支援(畢竟有付錢給對方)
因此該文章接下來就會針對這四個 Kubernetes 服務來探討一下彼此的差異。
註: 有興趣的話都可以用 Sonobuoy 這個開源專案來檢測自己維護的 Kubernetes 叢集,通過測試就可以把測試報告送到 GitHub 開 Issue 申請認證
GKE
1. Kubernetes 正式公開後一個月就 GKE 就出現了 (08/2015), 是最早的 Kubernetes 服務
2. GKE 會使用 gVisor 專注於安全層級的容器隔離技術來部署服務。
3. 有機會使用針對 Container 最佳化的 OS,有些 cloud provider 只能使用 Ubuntu image 之類的。
4. 服務出現問題時,可以啟動 auto-repair 來修復叢集,一種典型作法就是將一直回報為 NotReady 的 k8s 節點給重建
5. GKE 提供自動升級 Kubernetes 版本的功能,如果不想要的話記得要去關閉這個功能,否則自動升級是有可能讓某些應用程式無法正常運作的。
6. 使用 GKE 的話,要付每小時 $0.1 美元的管理費。如果使用 on-prem 的解決方案 (Anthos) 的話就可以免去這些管理費。
EKS
1. 06/2018 創立
2. 可以使用 Ubuntu Image 或是 AWS 針對 EKS 最佳化的 EKS AMI 來獲得更好的效能。
3. EKS 沒有提供自動升級 Kubernetes 版本的功能,官方有提供大量詳細的文件介紹如何手動升級 Kubernetes 版本
4. 沒有類似 auto-repair 的機制去幫忙監控與修復出問題的 k8s node,因此 EKS 使用者需要自己去監控與維護這些節點。
5. EKS 也是每小時 $0.10 的管理費用。 AWS Outposts/EKS Anywhere 這些 2021 啟動的專案讓你有機會將 EKS 部署到 on-prem 的環境中。
AKS
1. 06/2018 創立
2. AKS 沒有提供任何最佳化的 OS,你只能使用常見的那些 OS image 作為你的 k8s 節點
3. 預設情況不會自動升級 kubernetes 版本,不過 AKS 提供選項去開啟自動升級。Cluster 有四種不同策略(none,patch,stable,rapid)來自動更新你的 k8s 叢集。
4. AKS 預設不會啟動 auto-repair 功能。對於一直持續回報 NotReady 的節點, AKS 會先重起該節點,如果問題無法解決就會砍掉重建節點。
5. AKS 不收管理費
6. Azure 沒有特別提供一個供 on-prem 的 AKS 解決方案,不過透過 ARC 是有機會於 on-prem 的環境運行 AKS.
DOKS(DigitalOcean)
1. 05/2019 創立
2. 有提供 kubernetes 版本自動更新功能,但是只有針對 patch 版本的變化
3. 沒有 auto-repair 的功能
4. 文章撰寫的當下, DOKS 沒有任何文件說明如何於 on-prem 的環境運行 DOKS
5. 不收管理費
6. 相對其他三家來說,底層架構相對便宜,一個 DOKS 最低可以低到每個月 $10 美元。
價錢比較:
1. 假設需要創建一個擁有 20 節點並且有 80vCPU, 320GB RAM 的叢集 (GKE 因為每個節點都是 15GB,所以最後只能湊到 300GB)
2. 每個月為單位去計算價格,AKS/EKS/GKE 都使用其提供的價格計算機來粗估, DOKS 需要手動計算。
3. 價錢評比
a. AKS: $3416
b. EKS: $2928
c. DOKS: $2400
d. GKE: $1747
對文章有興趣的別忘了參閱全文
cluster server 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
ref: https://www.cyberark.com/resources/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions
本篇文章是一個基礎分享文,整個主軸圍繞於 Authentication 與 Authorization 兩大塊,同時透過這兩大概念的介紹來分享一些會可能會有資安問題的設定
開頭作者探討了 Kubernetes 的架構,並且將 API Server 這個重點核心拿來出探討,提到為了存取 Kubernetes API,使用者必須要經過三個階段的處理,分別是
Authentication, Authorization 以及 Admission Control
接者用一個簡單的流程來說明上述三者的差異,假設今天有一個 Client 想要請求 API Server 幫忙創建一個 Pod 的物件。
首先 API Server 會針對該請求進行 Authentication 的檢查,通常情況下會使用 Certificate, Tokens, Basic Authentication(username/password) 來判別。
如果通過後,則會進入到 Authorization 的階段,該階段要判別發送當前 Request 的 Client 是否擁有創建 Pod 的權限,如果有權限就會把相關操作交給後續的 Admission Control 來處理。
文章中舉了一個名為 AlwaysPullImages 的 Admission Controller,該 Controller 對於一個多用戶的 Kubernetes Cluster 來說特別有用,主要是用來確保使用者 A 想要使用的 Private Image 不能被使用者 B 存取。
試想一個情況,假設今天使用者 A 順利於 NodeA 上抓取了自己的 Private Image,那使用者 B 假如很剛好知道這個 Image 的名稱,是不是有機會就可以不需要相關權限直接使用 NodeA 上的 Image?
所以這個 Admission Controller 就是用來避免這個問題的。
接者作者從 Authentication 與 Authorization 中個挑選一個方式來介紹並且講解這兩者如何結合的。
Authentication 使用的是 Service Account Token,管理會事先於 Kubernetes 內創立一個相關的 Service Account,並且把該 SA(Service Account) 的 Token 給交給 Client(Kubeconfig 也可)
Client 發送 HTTPS 請求到 API Server 的時候就可以夾帶這個 Token 的資訊,這樣 API Server 就會去檢查該 Token 是否存在於 Cluster 內。
事實上當每個 Pod 被創立後, Kubernetes 預設情況下就會將該 namespace 下的 service account 資訊給掛載到該 Pod 內的 "/var/run/secrets/kubernetes.io/serviceaccount" 這個路徑
這樣該 Pod 就可以使用該 Service Account Token 的資訊與 API Server 溝通。
Authorization 則是使用 RBAC 的方式來處理, RBAC 由三個部分組成,分別是 Role(代表可以針對 Cluster 進行什麼樣類型的操作,譬如 create pod, delete pod), Subject(你是誰,譬如 Service Account), RoleBinding(用來將 Role 與 Subject 給綁定)
管理員要創建並且管理這些叢集的話,就要好好的去設計這三個物件的關係,來確保最後的 Client 可以擁有剛剛好符合其需求的權限,千萬不要為了懶散而給予過多權限。
接者作者列舉了五種 Risky permissions 的可能情境
1. Listing secrets
大部分的應用程式開發者都會使用 secret 的物件來管理一些機密資訊,如帳號密碼,憑證等,所以一個擁有 list secrets 的 service account 其實是相對危險的。
非必要的話,不要讓管理員以外的任何使用者有這個權限,特別是使用 ClusterRole/ClusterRoleBinding 時要特別注意
2. Creating a pod with a privileged service account
假設今天有一個攻擊者已經獲得一個可以創建 pod 的 service account,那該攻擊者已經可以很順利的於叢集內創建 Pod 去進行基本操作(譬如挖礦)
如果攻擊者很巧地又知道目標 namespace 內存在一個很強的 service account,它就有辦法讓他創立的 Pod 去使用這個很強的 Service Account 並且進行更多後續操作
3. Impersonating privileged accounts
作者提到 Impersonating 這個 Role 裡面的動作要特別小心使用,擁有這個權限的使用者可以輕鬆化身為其他的使用者/群組
舉例來說,一個擁有 Impersonating -> users/group 的 serviceaccount 是沒有辦法看到任何 secrets 的物件。
但是攻擊者只要使用的時候加上 --as=null --as-group=system:master 則就會變成如 master 般的上帝擁有這些權限
因此這種權限設定上要特別小心
4. Reading a secret – brute-forcing token IDs
5. Creating privileged RoleBindings
後續兩個有興趣的可以參考全文,都是滿有趣的一些想法,值得閱讀擴展自己的認知
cluster server 在 賴阿奇 Youtube 的精選貼文
我無法想像沒有編年史的日子 = =
我的實況連結stream link:
https://www.twitch.tv/freetitude
實況精華連結HighLight:
https://www.twitch.tv/freetitude/videos?filter=highlights&sort=time
我的人物檔案profile:
國際服GGG SERVER→https://www.pathofexile.com/account/view-profile/freetitude/characters
台服TW SERVER→https://web.poe.garena.tw/account/view-profile/A1020304/characters
![post-title](https://i.ytimg.com/vi/2MYhuKEzI_g/hqdefault.jpg)
cluster server 在 prasertcbs Youtube 的最佳貼文
สอนวิธีการใช้ Data mining add-in บน Excel เพื่อทำการแบ่งข้อมูลลูกค้าออกเป็นกลุ่มๆ โดยใช้ Cluster Analysis เทคนิค
![post-title](https://i.ytimg.com/vi/wvPJu6Q7IVU/hqdefault.jpg)
cluster server 在 prasertcbs Youtube 的精選貼文
สอนวิธีการใช้ Data mining add-in บน Excel เพื่อทำ Cluster Analysis/Detect Categories โดยใช้ข้อมูลดอก Iris ของ Fisher (https://en.wikipedia.org/wiki/Iris_flower_data_set) เป็นตัวอย่าง
==ดาวน์โหลดไฟล์ตัวอย่างได้ที่ https://goo.gl/TKBTBE
![post-title](https://i.ytimg.com/vi/tXFqnR3ZKB4/hqdefault.jpg)