在Kubernetes上部署docker

Docker Desktop默認包括一個獨立的Kubernetes服務器和客戶端,以及Docker CLI集成。 Kubernetes服務器在Docker實例中本地運行,不可配置,並且是單節點集羣。

Kubernetes服務器在本地系統上的Docker容器中運行,並且僅用於本地測試。 啓用Kubernetes支持後,您可以在Kubernetes,Swarm上以及作爲獨立容器並行部署工作負載。 啓用或禁用Kubernetes服務器不會影響其他工作負載。

docker desktop裏的kubernetes配置如下:

Kubernetes客戶端命令kubectl已集成在內,並且默認配置爲連接到本地Kubernetes服務器。 如果已經安裝了kubectl並指向其他環境,例如minikube或GKE集羣,則需要更改上下文信息,讓kubectl指向docker-desktop:

> kubectl config get-contexts
> kubectl config use-context docker-desktop

要啓用Kubernetes支持並安裝作爲Docker容器運行的Kubernetes獨立實例,選擇Enable Kubernetes。

要將Kubernetes設置爲默認協調器,選擇Deploy Docker Stacks to Kubernetes by default.。

默認情況下,Kubernetes容器對docker service ls之類的命令是隱藏的,因爲Kubernetes容器不支持手動管理。 要使其可見,選擇Show system containers (advanced).。 大多數用戶不需要此選項。

單擊Apply & Restart以保存設置。 docker將實例化將Kubernetes服務器作爲容器運行所需的映像,並將kubectl.exe命令安裝在路徑中。

  1. 啓用並運行Kubernetes後,Docker desktop settings'的右下角將顯示一個附加狀態欄項目。 Kubernetes的狀態顯示在Docker菜單中,上下文指向docker-desktop。
  2. 要隨時禁用Kubernetes支持,取消勾選Enable Kubernetes複選框。 Kubernetes容器將停止並刪除,並且/ usr / local / bin / kubectl命令也將刪除。
  3. 要刪除所有堆棧和Kubernetes資源,請選擇Reset Kubernetes Cluster。
  4. 如果通過其他方法安裝了kubectl,並且遇到衝突,請將其刪除。

 

使用docker command

可以使用docker stack deploy,docker-compose.yml文件在Kubernetes上部署stack。

docker stack deploy --compose-file /path/to/docker-compose.yml mystack
docker stack services mystack

我們可以看到service使用kubectl get services命令部署。

指定namespace

默認情況下,使用default 名稱空間。 我們可以使用--namespace標誌指定名稱空間。

docker stack deploy --namespace my-app --compose-file /path/to/docker-compose.yml mystack

運行kubectl get services -n my-app可以查看部署在my-app名稱空間中的服務。

覆蓋默認orchestrator

在測試Kubernetes時,我們可能也希望以集羣模式部署一些工作負載。 使用DOCKER_STACK_ORCHESTRATOR變量來覆蓋給定終端會話或單個Docker命令的默認協調器。 該變量可以未設置(不設置就是默認值,在這種情況下,Kubernetes是協調器),也可以設置爲swarm或kubernetes。 我們可以在運行命令之前設置變量來覆蓋單點部署的orchestrator。

set DOCKER_STACK_ORCHESTRATOR=swarm
docker stack deploy --compose-file /path/to/docker-compose.yml mystack

或者,可以在部署時將--orchestrator標誌設置爲swarm或kubernetes,以覆蓋該部署的默認協調器。

docker stack deploy --orchestrator swarm --compose-file /path/to/docker-compose.yml mystack
 

使用kubectl command

Windows Kubernetes默認安裝在在C:\> Program Files \ Docker \ Docker \ Resources \ bin \ kubectl.exe中提供Kubernetes CLI命令。 此位置可能不在PATH變量中,因此可能需要輸入命令的完整路徑或將其添加到PATH中。可以通過列出可用節點來測試命令:

kubectl get nodes

NAME                 STATUS    ROLES     AGE       VERSION
docker-desktop       Ready     master    3h        v1.8.2

Docker創建了以下demo應用程序,可以使用docker stack deploy命令將其部署到集羣模式或Kubernetes。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章