https://itnext.io/great-cks-kubernetes-security-exam-preparation-guide-to-help-you-pass-14fe5ab30ce1
本文是作者的心路歷程分享分享文,想要探討什麼是 Certified Kubernetes Security(CKS) Specialist 以及如果要準備這個考試可以如何準備
CKS
1. 根據 CNCF 官網的介紹, CKS 測驗是用來確認 CKS 能夠擁有與掌握如何安全的管理 Kubernetes Clusters,安全的概念包含安全的去處理這些 Container 以及整個 Kubernetes 平台的安全性(建置,部署,運行等所有階段)
2. 考取 CKS 之前要先通過 CKA (Certified Kubernetes Administrator) 的測試
3. Kubernetes 官網上其實有非常多的文件與操作說明, CKS 更像是一個幫助你去挑戰自我,確認自己有能力與知識去處理 k8s 安全相關的設定與操作。
如何準備 CKS
作者列舉了幾個重點概念
1. Docker Image 實作上的最佳實踐
2. 理解下列內容
a. CIS Kube-bench
b. Trivy
c. Sysdig/Falco
d. AppArmor
e. Seccomp
f. OPA/Gatekeeper
3. Linux 基礎理解,特別是 cGroup
4. Kubernetes 架構以及相關元件,譬如 RBAC, NetworkPolicy, PSP 等
5. API Server 相關操作,包含 Admission control, Audit 以及如何除錯
作者於文章後半部分列出了很多文章與影片連結,資源非常豐富,其中還提到 CKS/CKA/CKAD 的模擬器 (https://killer.sh/),對於該考試有興趣的一定要使用這些資源來練習
最後列出一些純 k8s 的一些考試內容
1. Admission controllers.
請確保你熟悉各種不同類型,如 PodSecurityPolicy,ImagePolicyWebhook 的實作與差異,並一定要知道這些是如何跟 API Server 互動的。
2. Immutable containers
如何使用 securitycontext 創造一個 Immutable 的容器並且避免一些可能會造成 mutable 的操作
3. Network Policy
4. PodSecurityPolicy(隨者 OPA 的發展,這個考試內容將會慢慢的被捨去)
5. gVisor
對於 CKS 考試有興趣的建議看看本篇文章,其中文章內有滿多跟安全相關的影片與文章也都值得閱讀
「docker image container差異」的推薦目錄:
- 關於docker image container差異 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於docker image container差異 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於docker image container差異 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於docker image container差異 在 Docker.Taipei | image 和container 有何不同 - Facebook 的評價
- 關於docker image container差異 在 【MentorTrust】Ep.07 聊聊什麼是Container(上)-輕量虛擬 ... 的評價
docker image container差異 在 矽谷牛的耕田筆記 Facebook 的最佳解答
昨天受邀參加 CNTUG 社群所舉行的一場線上分享會,來跟大家探討一下最近 Kubernetes 1.20 的議題,也就是 dockershim 的退休倒數計畫
為了能夠更加充分地去理解這次的改動,我們必須要對 Docker, Kubernetes, CRI 以及 OCI 這四個關鍵字有所瞭解,當你對這些東西的彼此關係都熟悉與清楚後,你就會發現這次的改動其實沒太大影響,對於開發者來說幾乎是毫無感覺。而系統維運者甚至服務提供者則是會因為底層軟體的變動而會有一些轉移的過程需要去思索該怎麼做。
昨天與會人數將近125人,討論非常踴躍,等會議錄影處理完畢後會再釋出,到時候大家可以再次回味。
這邊用比較簡單的敘述去幫大家稍微釐清一下標題四個元件的差異。
以下概念我們主要探討的是 2020 當下的架構,過往舊版的架構不列入考慮之中,有心力與興趣的可以再去挖掘這些架構演進
1. Docker 是 Contianer 的解決方案之一,除了 Docker 外也有別的方案可以提供 Container 的應用與環境,因此要注意,不要再說 Container 就是 Docker。 這句話於現在是一個完全錯誤的說法
2. 有一個叫做 OCI (Open Container Initiative) 的概念,旨於標準化 Container 環境,該標準定義了兩大項,分別是 Runtime 以及 Image.
Runtime 定義了該如何運行一個 Container,而 Image 則定義了 Image 的格式
4. Docker 解決方案產生出的 image 是完全遵循 OCI Image 格式,而 Docker 運行的 Container 也是遵循 OCI Runtime。
精準的說 Docker 指令會把內容送給 Dockerd,而 dockerd 會再把運行的指令送給 containerd,而 containerd 最後會叫起一個基於 OCI Runtime 標準實作的解決方案 Runc,最後產生出運行的 Container。
4. 根據上述架構,Docker 產生出的 image 以及運行的 container 其實最後都跟 OCI 標準脫不了勾
5. Kubernetes 一開始就表明我是 Container 管理平台,不是 Docker 管理平台,希望能夠支援不同的 Container 解決方案。 Docker 只是其中之一罷了
6. Kubernetes 希望透過 CRI (Container Runtime Interface) 來銜接各式各樣的容器解決方案
7. Docker 出世的時間早於 Kubernetes,因此 Kubernetes 無法使用 CRI 來直接銜接 Docker
8. 因此 Kubernetes 設計與實作了一個名為 dockershim 的中間層,該層透過 CRI 與 Kubernetes 溝通,同時往下與 docker 溝通來創建最後的 container.
9. 一旦 dockershim 被移除後, kubernetes 還是繼續使用 CRI 的介面與 Container 解決方案溝通,只是 docker 這邊就找不到一個很好的角色來串接彼此的對話。
10. 其他的解決方案,譬如 containerd, CRI-O,其底層的實作也都相容於 OCI 標準。這意味你透過 docker build 產生的 image 是可以於上述兩個解決方案去運行的。
因為大家都是基於 OCI 標準
所以這次的影響對於開發者來說毫無感覺,繼續使用 docker 還是可以讓你的服務交給 Kubernetes 處理,只要底層使用的解決方案也是相容 OCI 標準。
相關影片: https://www.youtube.com/watch?v=nc3mBN3LzvM&feature=youtu.be
相關投影片: https://www2.slideshare.net/hongweiqiu/the-relationship-between-docker-kubernetes-and-cri
docker image container差異 在 矽谷牛的耕田筆記 Facebook 的精選貼文
不知道大家第一次接觸 kubernetes 的時候都是使用哪套解決方案來打造你的 K8s 叢集? 亦或是作為一個開發者,你平常都怎麼架設 K8s 來本地測試?
這篇文章提到了作為一個 Local Kubernetes Cluster 幾個選擇,並且點出了三個需要解決的問題
1. Container Registry, 作為一個開發環境,應該不會想要每次測試都要將 Container Image 給推到遠方,譬如 dockerHub, Quay,這樣整體效率低落
2. Builder, 如何有效率的幫忙建置你的應用程式,並且與 Kubernete 整合,讓開發者可以更專心於本地開發,而不要擔心太多 k8s 之間的設定
https://www.dex.dev/dex-videos/development-clusters
3. Runtime, 底層使用哪套 Container Runtime, 譬如 docker/containerd/cri-o
註: 我個人對第三點其實沒太多感覺,不覺得本地測試這個會影響太多
後面列舉了當前知名的相關專案,譬如 KIND, K3D, MicroK8S, Minikube 以及 Docker for desktop. 並且簡單的比較了一下這些本地開發的差異。
不知道大家平常本地開發時,都會用哪一套?
我個人是比較常使用 KIND 來測試,畢竟輕量化且同時支援多節點,環境也乾淨,測試起來也方便。
docker image container差異 在 【MentorTrust】Ep.07 聊聊什麼是Container(上)-輕量虛擬 ... 的美食出口停車場
「容器( Container )」 是一個軟體單元,裡面包含了所有讓應用程式在各種不同環境(如不同電腦硬體、基礎架構或雲端環境)都能順利執行的必要元素, ... ... <看更多>
docker image container差異 在 Docker.Taipei | image 和container 有何不同 - Facebook 的美食出口停車場
Dockerfile 與Docker Compose 是Docker 兩個最重要的概念,也是初學者最容易卡關的地方,本文以「使用需求」為觀點解釋這兩者的差異。 ... <看更多>