sqli-labs 通關指南:Less 38 ~ 41
阿新 • • 發佈:2020-11-16
一.docker和kubernetes
Docker是一個開源的應用容器引擎,開發者可以打包他們的應用及依賴到一個可移植的容器中,釋出到流行的Linux機器上,也可實現虛擬化
docker-compose用來管理單機上編排管理容器(定義和管理多個容器) # 管理單機容器
Kubernetes是一個開源的容器叢集管理系統,可以實現容器叢集的自動化部署、自動擴縮容、維護等功能。
二.Kubernetes是什麼
- Kubernetes是Google在2014年開源的一款容器集群系統,簡稱k8s
- Kubernetes用於容器化應用程式部署、擴充套件和管理,目標是讓容器化應用簡單高效
- 官方網站:https://kubernetes.io/
- 官方文件:https://kubernetes.io/zh/docs/home/
三.Kubernetes叢集架構與元件
Master元件
- apiserver
Kubernetes API:叢集統一入口,各個元件的協調者,以RESTful API提供介面服務,所有物件資源的增刪改查和監聽操作都交給apiserver處理後再提交etcd儲存
- controller-manager
處理叢集中常規的後臺任務,一個資源對應一個控制器。而controller-manager就是負責管理這些控制器的
維護叢集的狀態。比如故障檢測、自動擴充套件、滾動更新等
- scheduler
負責資源排程,按照預定的排程策略將Pod排程到相應Node上
- etcd
分散式鍵值儲存系統。用於儲存叢集狀態資料,比如Pod。Service等物件資訊
Node元件
- kubelet
kubelet是Master在Node節點上的Agent,管理本機執行容器的生命週期。比如建立容器、Pod掛載資料卷、下載secret、獲取容器和節點狀態等工作。kubelet將每個Pod轉換成一組容器
- kube-proxy
在Node節點或實現Pod網路代理,維護網路規則和四層負載均衡工作
- docker或rocket
容器引擎:執行容器
四.快速部署一個Kubernetes叢集
部署K8s叢集的兩種方式
- kubeadm
kubeadm是一個工具,提供kubeadm init 和kubeadm join,用於快速部署Kubernetes叢集
官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/
- 二進位制
推薦,從官方下載發行版的二進位制包,手動部署每個元件,組成Kubernetes叢集
下載地址:https://github.com/kubernetes/kubernetes/releases