k8s 和 Docker 到底是什麼關係?
最近專案用到kubernetes(以下簡稱k8s,k和s之間有8個字母)。雖然之前也有簡單使用過,但最近發現k8s概念較多,命令也有些不夠用了,故想借此機會寫點東西,更全面認識並使用k8s。
本篇文章目的:讓你更全面瞭解k8s概念,以及學到在工作中常用的操作。整體更偏向於原理和應用。在正式開始k8s之前,我們先看看k8s和Docker的關係,分別從虛擬化角度、部署方式角度敘述why use容器,話不多說,開幹。
目前發現並沒有將kubernetes和Docker技術產生背景和需求進行比較的文章,本文從最純正的官方定義角度出發並展開,闡述二者產生背景及與傳統技術對比
簡要介紹:
官方定義1:Docker是一個開源的應用容器引擎,開發者可以打包他們的應用及依賴到一個可移植的容器中,釋出到流行的Linux機器上,也可實現虛擬化。
官方定義2:k8s是一個開源的容器叢集管理系統,可以實現容器叢集的自動化部署、自動擴縮容、維護等功能。
與傳統技術對比:
接下來我們看兩張經典的圖:
一、從虛擬化角度:
圖1上圖是Docker容器(可用k8s管理的玩意兒)與傳統虛擬化方式的不同之處,傳統的虛擬技術,在將物理硬體虛擬成多套硬體後,需要再每套硬體上都部署一個作業系統,接著在這些作業系統上執行相應的應用程式。
而Docker容器內的應用程式程式直接執行在宿主機(真實物理機)的核心上,Docker引擎將一些各自獨立的應用程式和它們各自的依賴打包,相互獨立直接執行於未經虛擬化的宿主機硬體上,同時各個容器也沒有自己的核心,顯然比傳統虛擬機器更輕便。
每個叢集有多個節點,每個節點可,我們的kuberbete就是管理這些應用程式所在的小執行環境(container)而生。
二、從部署角度
注意,大家別把這幅圖與上面Docker的那張圖混淆了,圖1是從虛擬化角度,說明了為應用提供必要的執行環境所需要做的虛擬化操作(即:傳統:虛擬出的虛擬機器裝作業系統、Docker:容器引擎管理下的容器)。
而圖2是在這些具體執行環境上進行真實應用部署時的情況,傳統方式是將所有應用直接部署在同一個物理機器節點上,這樣每個App的依賴都是完全相同的,無法做到App之間隔離,當然,為了隔離,我們也可以透過建立虛擬機器的方式來將App部署到其中(就像圖1上半部分那樣),但這樣太過繁重,故比虛擬機器更輕便的Docker技術出現,現在我們透過部署Container容器的技術來部署應用,全部Container執行在容器引擎上即可。
既然嫌棄虛擬機器繁重,想用Docker,那好,你用吧,怎麼用呢?手動一個一個建立?當然不,故kubernetes技術便出現了,以kubernetes為代表的容器叢集管理系統,這時候就該上場表演了。
說白了,我們用kubernetes去管理Docker叢集,即可以將Docker看成Kubernetes內部使用的低階別元件。另外,kubernetes不僅僅支援Docker,還支援Rocket,這是另一種容器技術。希望我這篇文章中簡單的描述能讓你對兩者有所理解和認識。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009696/viewspace-2841864/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- BPR和ERP到底是什麼關係(轉)
- Homework from Zhejiang 和結式到底是什麼關係
- Kubernetes和Docker之間的關係是什麼?Docker
- docker和k8s有什麼區別DockerK8S
- GitClub和GitHub是什麼關係Github
- Java 和 JavaScript 是什麼關係?JavaScript
- openssh和openssl是什麼關係
- Chronicles 和 IRIS 是什麼關係
- IRIS 和 Caché 是什麼關係
- GNU是什麼?和Linux是什麼關係?Linux
- k8s和Docker是什麼?兩者有什麼區別?K8SDocker
- 元宇宙是什麼,和遊戲有什麼關係元宇宙遊戲
- 什麼是Cython?和Python有什麼關係?Python
- Flex 是什麼? flex和flash是什麼關係?flex 解決什麼問題?flex和j2ee/.net是什麼關係?Flex
- linux和ubuntu區別是什麼?有什麼關係?LinuxUbuntu
- Linux中apt是什麼?和Dpkg有什麼關係?LinuxAPT
- SEO和品牌建設有什麼關係?
- 雲流化和雲桌面有什麼關係
- 奈學:Java 和 JavaScript 是什麼關係?JavaScript
- DDD和Microservices的關係是什麼?ROS
- 淺談k8s中cni0和docker0的關係和區別K8SDocker
- 什麼是Yottachain和YTA幣,它們是什麼關係?AI
- 面試官:什麼是 YAML?和 Spring Boot 有什麼關係?面試YAMLSpring Boot
- java和JavaScript究竟什麼關係,有什麼樣的區別JavaScript
- 一加和OPPO什麼關係?一加跟OV竟有這層關係
- 人工智慧和Python是什麼關係?人工智慧Python
- HyperLedger Fabric和區塊鏈是什麼關係?區塊鏈
- pycharm和python區別(關係)是什麼PyCharmPython
- 雲端計算和Linux是什麼關係?Linux
- Google Play 和神奇女俠是什麼關係?Go
- Centos 和 Redhat (RHEL) 有什麼關係(轉載)CentOSRedhat
- Unicode 和 UTF-8 是什麼關係?Unicode
- Linux和Unix有什麼區別?兩者有什麼關係Linux
- Docker——理解好映象和容器的關係Docker
- 人工智慧和區塊鏈是什麼關係?人工智慧區塊鏈
- Spyder和Python有什麼關係?功能介紹!Python
- 虛擬機器、容器和沙箱是什麼關係?虛擬機
- 平行鏈和主鏈開發是什麼關係?