易於混淆的兩個技術:Kerberos與Kubernetes辨析

chszs發表於2015-12-22
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/50379088

易於混淆的兩個技術:Kerberos與Kubernetes辨析

作者:chszs,未經博主允許不得轉載。經許可的轉載需註明作者和部落格主頁:http://blog.csdn.net/chszs

Kerberos介紹

Kerberos是一個網路授權驗證協議,源於麻省理工學院,其第一個公開發行版為Kerberos V4。在得到廣泛使用後,繼續釋出了Kerberos V5版,隨後Kerberos V5成為IETF的標準。Kerberos的設計目標是通過使用金鑰加密技術,為客戶端/伺服器架構的應用提供一個強授權驗證機制。要注意一點,Kerberos協議僅用於驗證使用者的身份,它本身不提供授權訪問。也即,Kerberos的票據僅僅用來證明這個使用者就是他自己聲稱的那個使用者。在使用者身份得以確認後,本地的安全許可權將決定給予訪問許可權或者拒絕訪問。

Kerberos V5協議規定了以下機制:

  • 驗證使用者身份
  • 安全的打包使用者名稱和使用者的身份信任憑證到票據
  • 安全的傳輸使用者信任憑證

Kubernetes介紹

Kubernetes是基於 Google 自身多年使用 Linux 容器的經驗建立出來的,所以可以說它是 Google自身多年操作經驗的一個複製,只是 google 把這些操作經驗應用到了 Docker 上。 使用Kubernetes 來管理容器在多個方面都將帶來很大的好處,而其中最重要的就是 Google 把他們多年使用容器的經驗帶入了這個工具。如果你是從 Docker1.0 (或者更早之前的版本)開始使用Kubernetes,你會發現使用 Kubernetes 來管理 Docker 容器是非常愉悅的體驗。Kubernetes 解決了許多 Docker 自身的問題。通過 Kubernetes,你可以在容器中使用實際的物理儲存單元,從而我們可以很方便的把容器移動到其他機器上,而不丟失任何資料; Kubernetes 使用 flannel 來建立容器之間的網路;Kubernetes 整合了 load balancer;Kubernetes 使用 etcd 來實現服務發現,諸如此類的東西還有很多。但是使用 Kubernetes 是要付出一定的代價愛的,比如,Kubernetes 使用了一個完全不同於 Docker 的 CLI (Command Line Interface),不同的 API 以及不同的 YAML 配置定義。換句話說,如果你使用Kubernetes,那麼你將完全不能使用 Docker 自帶的CLI,也不能使用 Docker Compose 來定義(建立)容器。使用 Kubernetes,你必須為 Kubernetes 重新建立所有和Docker 容器管理相關的東西,因此我們可以認為 Kubernetes 並不是為了 Docker建立的(從一定意義上說是正確的)。Kubernetes 提升了 Docker 容器叢集的管理層次,但同時它的學習曲線也是非常陡峭的。

Kubernetes 是Google開源的容器叢集管理系統,基於Docker構建一個容器的排程服務,提供資源排程、均衡容災、服務註冊、動態擴縮容等功能套件。

Kubernetes的特徵如下:

  • Lean:輕量級、簡單、易訪問
  • Portable:支援公有云、私有云、混合雲等
  • Extensible:模組化、可插拔、可鉤掛(Hookable)、可組合
  • Self-healing(自我修復):自動安置、自動重啟、自動複製

Kubernetes的關鍵概念:

Cluster

叢集是一組物理機或虛擬機器,用於讓Kubernetes執行應用程式的。

Node

節點是一個物理機或虛擬機器,上面執行著Kubernetes,它上面的Pod可以被排程。

Pod

在Kubernetes系統中,排程的最小顆粒不是單純的容器,而是抽象成一個Pod,Pod是一個可以被建立、銷燬、排程、管理的最小的部署單元。比如一個或一組共享卷的容器。

Replication Controllers

複製控制器用於管理Pod的生命週期。它可以確保給定數量的Pod在給定的時間範圍執行,且可以建立或殺死Pod。

Services

服務為一組Pod提供了單一的、穩定的名字和地址,是負載均衡器的基礎。

Labels

標籤用於組織和選擇物件組,通過鍵值對的方式。


相關文章