1. 程式人生 > >Docker和Kubernetes

Docker和Kubernetes

易用 亞馬遜 雲解決方案 並且 方向 分解 力量 兩種 ice

Docker和Kubernetes

Docker
  • Docker是一個容器的開放平臺,但它不是最早的。自20世紀70年代以來,容器平臺一直存在。他們的開發可以追溯到Unix中的chroot系統調用。在2000年代早期,FreeBSD Jails和Linux服務器的開發導致了2008年的Linux容器(LXC)。Docker在2013年左右出現在容器領域,並立即取得了成功。原因是Docker使得運行容器變得簡單;使用Docker,開發人員可以輕松啟動,停止和銷毀容器。而且帶來的低學習曲線和易用性,使其成為軟件開發過程中的主要方向。

    Kubernetes
  • Kubernetes的發展獨立於Docker。2003年左右,谷歌創建了Borg系統來應對日益增長的集群管理問題。這是一個內部工具。2014年年中,Google推出Kubernetes作為Borg系統的開源版本。不久,微軟,紅帽,IBM和Docker加入,以支持Kubernetes社區。Kubernetes是一個容器編排解決方案。當開發人員在開發環境中處理少量容器時,管理服務並不是什麽大問題。但是,當應用程序部署到生產環境並且有數百或數千個容器和服務時,管理任務變得復雜。Kubernetes簡化了大規模部署的容器管理問題。在Kubernetes環境中,開發人員使用pod的概念創建他們的應用程序。Pod是集群在一起的容器,就像單個單元一樣工作。這些pod已部署到Kubernetes主節點以及配置要求,如pod數和網絡設置。主節點管理工作節點。在部署pod之後,主節點負責跟蹤容器。Kubernetes使生產團隊易於進行容器管理和編排。

    Kubernetes和Docker的交叉點
  • 了解Kubernetes和Docker的交叉點從上面的討論中可以看出,Docker容器是使用Kubernetes管理的。所以不應該有任何“Docker vs. Kubernetes”討論。但Docker有一款名為Docker Swarm的產品。它是一個集群和調度工具。它類似於Kubernetes,所以任何正在研究容器編排工具的人都應該研究“Kubernetes vs. Docker Swarm”比較。由於Docker的普及,許多開發團隊使用Docker Swarm啟動容器編排。這似乎是自然的下一步。這很容易學習,Kubernetes的學習曲線更加陡峭。但是使用Minikube學習它變得越來越容易,Minikube是一個運行單節點Kubernetes集群的工具。另一個重要因素是Kubernetes擁有比Docker Swarm更強大的社區,所有主要的雲提供商都支持它。亞馬遜AWS已經為Kubernetes(Amazon EKS)啟動了Amazon Elastic Container Service,Google Cloud擁有Kubernetes Engine,微軟Azure擁有Azure Kubernetes服務(AKS)。所以目前看來,主要的市場力量正在將Kubernetes作為一個容器編排解決方案。

Docker和Kubernetes的主要趨勢
  • 管理Docker和Kubernetes環境的DevOps團隊應該關註這些關鍵趨勢:微服務的使用:微服務架構是容器使用興起的主要原因之一。在這種架構中,應用程序被分解為更小的獨立服務。容器非常適合在生產環境中支持這些類型的應用程序。因此,期望支持更多使用Docker和Kubernetes的基於微服務的應用程序。多雲環境的增加:企業越來越擔心使用單雲解決方案。因此,他們正在尋求多雲環境以獲得更多選擇並減少對單個供應商的依賴。這意味著DevOps團隊必須具備在多雲環境中運行Docker和Kubernetes所需的技能,這將帶來新的挑戰。對Docker和Kubernetes的支持越來越多:Docker和Kubernetes都擁有強大的社區。Docker Hub擁有一個活躍的用戶群,可以定期更新各種應用程序的鏡像。Kubernetes也得到了開源社區和亞馬遜,谷歌,微軟和IBM等大公司的大力支持。所以Docker和Kubernetes將在企業和小企業中變得更加普遍。結語所以其實並不是“Kubernetes vs Docker”,討論應該集中在“Kubernetes vs. Docker Swarm”上。這兩種技術在今天的軟件環境中都扮演著重要的角色。Docker容器改進了開發過程,Kubernetes容器編排改進了部署過程。DevOps團隊可以利用這些技術的強大功能構建更強大的持續集成和持續交付(CI/CD)管道,以實現更快,更可靠的軟件開發周期

Docker和Kubernetes