Docker
docker就是創建容器的工具,相當於Navicat不是數據一樣。docker包含容器,鏡像,倉庫,容器就是原始文件,鏡像就是復制容器來的,倉庫就是儲存鏡像的,還有很多官方的鏡像,所以啊,就非常好用,從官方的倉庫拉鏡像,就可以用。
Docker的應用場景
-
Web 應用的自動化打包和發布。
-
自動化測試和持續集成、發布。
-
在服務型環境中部署和調整數據庫或其他的后台應用。
-
從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
K8S:K8S是用來管理容器的
K8S的專業術語:
- Master: k8s的主控組件,對應的對象是node。
- Node: 是k8s集群的機器節點,相當於master-node。一個node就對應一個具體的物理機或者虛擬機。
- Container: 是一個鏡像容器,一個container是一個鏡像實例
- Pod: 是k8s集群的最小單元,一個pod可以包含一個或者多個container
- Service: 多個相同的pod組成一個服務,統一對外提供服務。
- Volume: 存儲卷,pod對外暴露的共享目錄,它可以掛載在宿主機上,這樣就能讓同node上多個pod共享一個目錄。
- Replication Controller: 用於控制pod集群的控制器,可以制定各種規則來讓它控制一個service中的多個pod的創建和消亡, 很多地方簡稱為rc。
- Namespace: 命名空間,用於將一個k8s集群隔離成不同的空間,pod, service, rc, volume 都可以在創建的時候指定其namespace。
- StatefulSet: 有狀態集群,比如一個主從的mysql集群就是有狀態集群,需要先啟動主再啟動從,這就是一種有狀態的集群。
- Persistent Volume: 持久存儲卷。之前說的volume是掛載在一個pod上的,多個pod(非同node)要共享一個網絡存儲,就需要使用持久存儲卷,簡稱為pv。
- Persistent Volume Claim: 持久存儲卷聲明。他是為了聲明pv而存在的,一個持久存儲,先申請空間,再申明,才能給pod掛載volume,簡稱為pvc。
- Label: 標簽。我們可以給大部分對象概念打上標簽,然后可以通過selector進行集群內標簽選擇對象概念,並進行后續操作。
- Secret: 私密憑證。密碼保存在pod中其實是不利於分發的。k8s支持我們創建secret對象,並將這個對象打到pod的volume中,pod中的服務就以文件訪問的形式獲取密鑰。
- EndPoint: 用於記錄 service 和 pod 訪問地址的對應關系。只有 service 配置了 selector, endpoint controller 才會自動創建endpoint對象。