韓先超k8s零基礎入門到高級架構師就業(yè)實戰(zhàn)課程2023
K8S:基于容器技術的分布式架構領先方案
? ? Kubernetes是一款容器編排工具,“容器編排”指的是一種基于容器技術的分布式架構方案,了解過docker可能對“容器”一詞并不陌生,但“編排”又是何意?
? ? ?為什么需要容器編排?Kubernetes又有什么特殊之處?帶著這些問題進入本文吧。
一、應用部署方式的發(fā)展
? ? ?在了解為什么需要容器編排之前不妨先來看一下應用部署方式的發(fā)展歷程。 ? 1、早期部署
? ? 在最開始,我們是直接將項目部署在物理機上,這里的物理機即是有實體的服務器,可以理解為將一個項目部署在了一臺電腦上。
? ? ? ? 并且通常只會在一臺機器上部署一個應用,因為在這種部署方式下,應用程序的資源使用邊界難以定義,如果多個應用部署在一臺機器上,
? ? ? ? 可能會因某個應用占用了大部分的資源而導致其他應用無法獲取資源的情況。
? ?這種部署方式優(yōu)點不用多說,無需其他技術的參與,簡單;但它的缺點也顯而易見,一個應用就會占用一臺機器,成本太高。 ? 2、虛擬化部署
? ? 進入虛擬化時代,一個物理機上可以運行多個虛擬機,每個虛擬機有自己獨立的環(huán)境,互不影響,這就為在一臺物理機上部署多個應用提供了可能。
? ? ? ? 優(yōu)點:一臺服務器上可以部署多個應用,應用之間互不影響,成本和利用率相對于早期部署來說都大大提高;
? ? ? ? 缺點:每個虛擬機都是獨立的操作系統(tǒng),這些操作系統(tǒng)的運行也會產(chǎn)生額外開銷,另外通常情況下我們的應用運行環(huán)境很可能都是一樣的,
? ? 這樣的話我們需要在每個虛擬機上都要搭一遍環(huán)境,重復性工作太多,給運維帶來不便。 ? 3、容器化部署
? ? 在虛擬化部署的基礎上,人們把關注點放到了在進行虛擬化部署時如何進一步降低資源消耗、減少重復性運維工作、同時保證系統(tǒng)間的隔離性上,這便促使了容器技術的產(chǎn)生。
? ? ? ? 其實容器技術的本質(zhì)仍然是一種虛擬化技術,不過它與上面提到的虛擬化部署方式不同,這里引用一句網(wǎng)上的概述:
? ? ? ?“容器是通過一種虛擬化技術來隔離運行在主機上不同進程,從而達到進程之間、進程和宿主操作系統(tǒng)相互隔離、互不影響的技術。
? ? 這種相互孤立進程就叫容器,它有自己的一套文件系統(tǒng)資源和從屬進程?!? ? ? ? ? 容器與虛擬機相比,容器更為輕量級,占用資源少,并且啟動時間遠小于虛擬機,但從隔離層面來說,虛擬機更為徹底。
? ? ? ? 雖然容器技術優(yōu)點很多,但它也存在著一些問題:大量容器無法管理以及在分布式架構中應用容器無法自動收縮擴展,
? ? 這也是為什么需要容器編排的原因,由此各種編排工具應運而生。