iT邦幫忙

2023 iThome 鐵人賽

DAY 1
3

Yes

https://ithelp.ithome.com.tw/upload/images/20230902/20148308CvLv5NXHhd.png
來源: Difference between VM vs Docker

  • 但在大型的應用程式部署中,可能需要面臨控管數十個甚至是數百個容器的管理,假如都要手動進行部署、重啟、擴張等需求勢必會增加許多管理成本。這時候就需要Container Orchestrator 類的平台來協助管理,例如 Kubernetes。

  • 依照 wiki 定義,Kubernetes(常簡稱為K8s)是用於自動部署、擴充和管理「容器化(containerized)應用程式」的開源系統。而 Kubernetes 的系統架構圖參考如下,這邊先不細說裡面有甚麼,總之可以觀察出來多了不少元件。

https://ithelp.ithome.com.tw/upload/images/20230902/20148308tqRhivXxkD.png

  • 但 Kubernetes 多了更多元件,也意味著更多的可能被攻擊的機會,也因此本系列就是要從容器安全開始一路講到 Kubernetes 的安全。從建置環境、攻擊環境開始一路講到如何防禦、偵測這些攻擊。本次會用到的作業系統以及相關軟體參考如下 :

  • 相關作業系統參考如下 :

  • 使用軟體如下 :

    • Docker - 20.10.21
    • minikube - v1.30.1
    • Kubernetes - v1.26.3
    • 虛擬機架設工具 - VirtualBox (記得先確認 檔案-> 工具 -> Network Manager 有沒有新增好 VirtualBox Host-Only Enternet Adapter)
  • 第一天先來準備使用環境,為了方便到時候期中考、期末考回復環境,建議使用 VirtualBox 方便做快照跟還原。安裝步驟可以參考 Day13 - Pwnkit 可不可以讓我提權一下下就好

  1. 打開 VirtualBox,點擊主機網路管理員,如果沒有的話新增一張
  2. VM 規格 - 2CPU、2GB Memory、20GB Disk、網卡(NAT、限主機介面卡)
  3. 安裝幾乎都下一步下一步,硬碟選擇不要 LVM,安裝完成後重新開機
  4. 安裝常用套件,以下自行參考,之後有缺再裝也可以
sudo apt update ;
sudo apt install net-tools ncat -y ;
  1. 參考Day20 - 如果我沒看錯,你就是簽章中的霸主~ 心靈簽章 去切換安裝 kernel 版本
# 下載 v5.16.20 相關檔案 
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.20/amd64/linux-headers-5.16.20-051620-generic_5.16.20-051620.202204131933_amd64.deb ;
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.20/amd64/linux-headers-5.16.20-051620_5.16.20-051620.202204131933_all.deb ;
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.20/amd64/linux-image-unsigned-5.16.20-051620-generic_5.16.20-051620.202204131933_amd64.deb ;
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.20/amd64/linux-modules-5.16.20-051620-generic_5.16.20-051620.202204131933_amd64.deb ;

# 不要一個個安裝,會失敗,讓系統自己決定相依性
sudo dpkg -i *.deb ;
sudo update-grub ;
sudo shutdown -r now ;

#理論上會顯示 5.16.20-051620-generic
uname -r ;  
  1. 參考 官網 安裝 docker
sudo apt-get update ;
sudo apt-get install ca-certificates curl gnupg -y ;
sudo install -m 0755 -d /etc/apt/keyrings ;
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg ;
sudo chmod a+r /etc/apt/keyrings/docker.gpg ;
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ;
sudo apt-get update ;
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y ;

# 應該要失敗,除非你是 root
docker ps ; 

#把目前帳號加到 docker 群組中
sudo usermod -aG docker $(whoami) ;

#登出後再登入
exit ;

# 應該會成功了吧?
docker ps ; 
  • 大概今天就到這邊了,針對今天的環境可以先建立一個快照,方便之後期中考切回來做使用。

  • 作業1 : 第一天就有回家作業了 /images/emoticon/emoticon07.gif,因為後期會用到 CentOS 的環境,所以練習用 CentOS 7 建立一個一樣的環境出來,大概就是 Server 版功能並且在上面安裝 docker (PS. CentOS kernel版本部分無須更動)。到時候期中考會用到這台機器喔~~!!!! (提示: 要記得去 /etc/sysconfig/network-scripts/ifcfg-XXX 設定 ONBOOT=yes)

  • 今日總結 :

    • 本日回顧 :
      • 大概說明了這次鐵人賽的目標也就是針對容器跟K8s的安全作介紹。然後第一天不囉嗦直接開建安裝完 Docker 環境出來用。
    • 次日預告 :
      • 考量到未必每個人都用過 Docker,所以明天會整理一些這次鐵人賽會用到的基本指令做說明。當然假如你對 Docker 很熟的話就可以休息一次啦!!!!

下一篇
Day01 - 作業1 解答 - 建立 CentOS 7 環境
系列文
怕痛的我把 Docker、K8s 攻擊、防禦、偵測力點滿就對了63
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
whoami
iT邦新手 1 級 ‧ 2023-09-09 00:04:42

讚喔

aeifkz iT邦新手 3 級 ‧ 2023-10-08 22:34:58 檢舉

感謝啦~~ 希望以後有機會可以找你組隊 /images/emoticon/emoticon01.gif

我要留言

立即登入留言