淺談容器及容器編排


•虛擬機技術和容器技術

  • 虛擬化技術發展的三個時代

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

  • 容器技術

容器技術:有效的將單個操作系統的資源划分到孤立的組中,以便更好的在孤立的組之間平衡有沖突的資源使用需求,這種技術就是容器技術。

•LXC,就是Linux容器虛擬技術(Linux container)。

•Linux Container是一種內核輕量級的操作系統層虛擬化技術。

•Linux 容器技術能夠讓您對應用及其整個運行時環境(包括全部所需文件)一起進行打包或隔離。從而讓您可以在不同環境(如開發、測試和生產等環境)之間輕松遷移應用,同時還可保留應用的全部功能。

  • 容器解決什么問題?
  1. 保證開發、測試與生產環境的一致性
  2. 快速搭建各類基礎服務,例如Gitlab,Nexus、Jenkins等,極大降低學習成本!
  3. 搭建一次性測試執行環境,例如我們運行自動化測試的環境,隨用隨建,不用即扔
  • 容器的優點

1. 敏捷環境
2. 提高生產力
3. 版本控制
4. 計算環境可移植性
5. 標准化
6. 安全

  • 虛擬機技術與容器技術對比

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

  • 容器技術的代表-Docker

Docker兩句口號:

•Build, Ship and Run

搭建、發送、運行

•Build once,Run anywhere

搭建一次,到處能用

Docker技術的三大核心概念:

·Image

鏡像

·Container

容器

·Repository

倉庫

IT 軟件中所說的 “Docker” ,是指容器化技術,用於支持創建和使用LXC。Docker本身並不是容器,它是創建容器的工具,是應用容器引擎。

•容器編排工具

  • 什么是容器編排?

容器編排是指自動化容器的部署、管理、擴展和聯網。容器編排可以為需要部署和管理成百上千個 Linxu容器和主機的企業提供便利。

  • 容器編排具有哪些用途?

•集群管理

•部署

•可伸縮性

•健康

•服務可用性

•隔離

  • 容器編排工具

通過抽象主機基礎結構,允許用戶將整個集群視為單個部署目標。

一些常見的方案包括:Kubernetes、Docker Swarm 和 Apache Mesos。

Docker Swarm

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

Apache Mesos

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

 

•Kubernetes介紹

  • Kubernetes是什么?K8s?

•Kubernetes是Google 2014年創建管理的,是Google 10多年大規模容器管理技術Borg的開源版本。

•Kubernetes是容器集群管理系統,是一個開源的平台,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。

通過Kubernetes你可以:

•快速部署應用

•快速擴展應用

•無縫對接新的應用功能

•節省資源,優化硬件資源的使用

Kubernetes 特點:

•可移植: 支持公有雲,私有雲,混合雲,多重雲(multi-cloud)

•可擴展: 模塊化, 插件化, 可掛載, 可組合

•自動化: 自動部署,自動重啟,自動復制,自動伸縮/擴展

  • Kubernetes集群

Master:

•API Server

•Scheduler

•Controller manager

•Etcd

Node:

•Kubelet

•Kube-proxy

•Docker

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

  • Pod

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

Pod是Kubernetes創建或部署的最小/最簡單的基本單位,一個Pod代表集群上正在運行的一個進程。

Pod(上圖綠色方框)安排在節點上,包含一組容器和卷。同一個Pod里的容器共享同一個網絡命名空間,可以使用localhost互相通信。Pod是短暫的,不是持續性實體。

  • Lable
淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

Labels其實就一對附加到Pod上的 key/value對 ,被關聯到對象上,標簽的使用我們傾向於能夠標示對象的特殊特點,並且對用戶而言是有意義的(比如app=mysql),但是標簽對內核系統是沒有直接意義的。

  • ReplicaSet( Replication Controller升級版 )

ReplicaSet 確保任意時間都有指定數量的Pod“副本”在運行。如果為某個Pod創建了ReplicaSet並且指定3個副本,它會創建3個Pod,並且持續監控它們。如果某個Pod不響應,那么ReplicaSet會替換它。

健康檢測:

1.LivenessProbe(存活探針)

2.ReadinessProbe(就緒探針)

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

  • Service

Service是定義一系列Pod以及訪問這些Pod的策略的一層抽象。Service通過Label找到Pod組。

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)

 

注:在 1.8 以上的版本中,kube-proxy 組件增加了 ipvs 模式

  • 關於CI/CD流水線架構圖:

 

淺談容器及容器編排(K8s編排、Docker容器技術、虛擬化)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM