k8s可以做什麼?
- 快速部署應用
- 快速擴展應用
- 無縫對接新的應用功能
- 節省資源,優化硬件資源的使用
k8s特點
- 可移植: 支持公有云,私有云,混合雲,多重雲(multi-cloud)
- 可擴展: 模塊化, 插件化, 可掛載, 可組合
- 自動化: 自動部署,自動重啓,自動複製,自動伸縮/擴展
部署方式
- 傳統部署
- 容器部署
容器優勢總結
- 快速創建/部署應用:與VM虛擬機相比,容器鏡像的創建更加容易。
- 持續開發、集成和部署:提供可靠且頻繁的容器鏡像構建/部署,並使用快速和簡單的回滾(由於鏡像不可變性)。
- 開發和運行相分離:在build或者release階段創建容器鏡像,使得應用和基礎設施解耦。
- 開發,測試和生產環境一致性:在本地或外網(生產環境)運行的一致性。
- 雲平臺或其他操作系統:可以在 Ubuntu、RHEL、 CoreOS、on-prem、Google Container Engine或其它任何環境中運行。
- Loosely coupled,分佈式,彈性,微服務化:應用程序分爲更小的、獨立的部件,可以動態部署和管理。
- 資源隔離
- 資源利用:更高效
k8s能做什麼?
- 多個進程(作爲容器運行)協同工作(Pod)
- 存儲系統掛載
- Distributing secrets
- 應用健康檢測
- 應用實例的複製
- Pod自動伸縮/擴展
- Naming and discovering
- 負載均衡
- 滾動更新
- 資源監控
- 日誌訪問
- 調試應用程序
- 提供認證和授權
Kubernetes不是什麼?
- Kubernetes不限制支持應用的類型,不限制應用框架。限制受支持的語言runtimes (例如, Java, Python, Ruby),滿足12-factor applications 。不區分 “apps” 或者“services”。 Kubernetes支持不同負載應用,包括有狀態、無狀態、數據處理類型的應用。只要這個應用可以在容器裏運行,那麼就能很好的運行在Kubernetes上。
- Kubernetes不提供中間件(如message buses)、數據處理框架(如Spark)、數據庫(如Mysql)或者集羣存儲系統(如Ceph)作爲內置服務。但這些應用都可以運行在Kubernetes上面。
- Kubernetes不部署源碼不編譯應用。持續集成的 (CI)工作流方面,不同的用戶有不同的需求和偏好的區域,因此,我們提供分層的 CI工作流,但並不定義它應該如何工作。
- Kubernetes允許用戶選擇自己的日誌、監控和報警系統。
- Kubernetes不提供或授權一個全面的應用程序配置 語言/系統(例如,jsonnet)。
- Kubernetes不提供任何機器配置、維護、管理或者自修復系統。