在Windows 10上安裝Docker Desktop並啓用Kubernetes

引言:在Windows上安裝並使用kubernetes對於剛接觸Kubernetes的開發人員是很是有幫助的。linux

在Windows 10上安裝Docker Desktopgit

Windows版的Docker Desktop 是社區版本,您能夠從Docker Hub上直接下載,下載連接以下:github

https://hub.docker.com/?overlay=onboardingdocker

注:在使用stable版(2.1.0.5)時,Docker Desktop偶爾會出現lifecycleserver超時沒法正常啓動,而使用Edge(2.1.7.0)版本正常。windows

系統要求:api

一、Windows 10 64位,專業版、企業版、教育版(15063或更高版本),推薦從msdn上下載cn_windows_10_business_editions_version_1903_updated_sept_2019_x64_dvd_2f5281e1.iso(ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sept_2019_x64_dvd_2f5281e1.iso|5231140864|B1D5C4C401036B0B1EBA64476A95F338|/)服務器

二、必須啓用了Hyper-V和windows 容器特性app

硬件要求:ide

一、支持SLAT(Second Level Address Translation)的64位處理器性能

二、4GB或以上內存

三、必須在BIOS中設置啓用硬件虛擬化

使用Docker Toolbox和Docker Machine或者Vmware的用戶需知

Docker Desktop須要安裝並啓用Microsoft Hyper-V,並從新啓動計算機。當啓用Hyper-V後,VirtualBox或者Vmware將不能再正常使用。然而,任何現有的虛擬機鏡像都會被保留。

使用docker-machine建立的VirtualBox虛擬機(包括安裝Toolbox期間建立的默認虛擬機)將不能啓動。這些虛擬機不能與Docker Desktop一塊兒同時使用。可是,您仍然可使用docker machine來管理vms。

注意:禁用Hyper-V後,仍能夠正常使用VirtualBox和vmware。

安裝Docker Desktop將包含如下內容

一、Docker引擎、Docker CLI、Docker Compose、Docker Machine和Kitematic。

二、使用Docker Desktop建立的容器和鏡像在安裝Docker Desktop的計算機上的全部用戶賬戶之間共享。這是由於全部Windows賬戶都使用同一個VM來構建和運行容器。

三、嵌套的虛擬化場景,例如在VMWare或Parallels實例上運行Docker Desktop,可能能夠正常使用,但不能保證。

注意:有關Docker與Windows服務器的完整兼容性信息,請參閱Docker兼容性列表(https://success.docker.com/article/compatibility-matrix)。

安裝Hyper-V和Containers

單擊 "控制面板" -->"全部控制面板" -->"程序和功能" -->"啓用或關閉Windows功能",勾選上"Containers"和"Hyper-V",以下圖1.1所示。

55b4d363a2fb43debccad7a5f5190585

圖1.1

安裝完Hyper-V後會提示重啓系統,完成重啓後,咱們能夠在任務管理器中看到,在性能菜單中查看到CPU的虛擬化已啓用,如圖1.2所示。

69c3118476c049f7af7f146265fb3797

圖1.2

安裝Docker Desktop

接下來開始安裝Docker Desktop,雙擊「Docker Desktop Installer」開始安裝,如圖1.3所示。

cd0a9967cc7a402c81ebbd215ead97cb

圖1.3

按默認勾選,完成安裝,如圖1.4所示。

d14f1005fe5244bbadc63427aa1a9e88

圖1.4

關於Windows容器

Use Windows containers instead of Linux containers(this can be changed after installation)表示是否用Windows容器來替代Linux容器(該切換操做在軟件完成安裝後也是能夠切換的)

Windows和Linux容器之間的切換描述瞭如何在Docker Desktop中切換Linux和Windows容器(可參考:https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers)。

Windows容器入門提供瞭如何在Windows 十、Windows Server 2016和Windows Server 2019上設置和運行Windows容器的教程(可參考:https://github.com/docker/labs/blob/master/windows/windows-containers/README.md)。

安裝完成後,會提示註銷當前用戶並從新登陸,點擊"Close and log out",從新登陸後,Docker Desktop會自動運行,這須要必定的時間才能完成啓動,在啓動過程當中可能會告知Hyper-V和Containers的特性還未啓用,詢問是否啓用,如圖1.5所示,點擊「OK"。

a74ef7f9ffad4f72a045167c1e9c26d5

圖1.5

Docker Desktop啓動成功後,您應該會在電腦右下角的系統托盤中看到Docker圖標,而且顏色是白色狀態(若爲紅色則表示啓動異常),如圖1.6所示。而後還會彈出登陸Docker Hub的對話框,以下圖所示,若是你在Docker Hub上有註冊過帳號,此時是能夠登陸的,如圖1.7所示。

738a1258c4ed4eeca4211ccc1ea9fa16

圖1.6

ab4668c11da34bd7821e05fb75a209ce

圖1.7

右擊系統托盤的docker圖標,點擊"About Docker Desktop",獲取各組件版本信息,如圖1.8所示。

410f4417d70145af9770f29cb9b4d4b7

圖1.8

啓用Kubernetes

右擊系統托盤的docker圖標,在導航中,選擇「Settints" ,如圖1.9所示。

b4a62658422c4e3a90f8a8b4433bfde5

圖1.9

首先,設置Docker的鏡像源爲daocloud,便於後續鏡像加速下載,如圖1.10所示。


{

  "registry-mirrors": [「http://f1361db2.m.daocloud.io」],

  "insecure-registries": [],

  "debug": true,

  "experimental": true

}

圖1.10

若咱們直接在Setttings中勾選並啓動kubernetes是沒法啓動成功的,緣由是Docker Desktop在初始化kubernetes時所用到的鏡像image都是國外源,沒法下載成功。能夠從 https://github.com/AliyunContainerService/k8s-for-docker-desktop 下載。

當前master分支默認爲1.15.5版本,而咱們安裝的Docker Desktop中的Kubernetes版本就是1.15.5,因此克隆後,不須要checkout到其餘分支

# git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git

在Windows上,使用 PowerShell執行以命令命令,如圖1.11所示

.\load_images.ps1

若報提示禁止運行腳本問題,則先以管理員運行PowerShell,並執行如下命令,按"Y"鍵確認

Set-ExecutionPolicy –ExecutionPolicy

2874de74d065422198531099f9d928ae

圖1.11

kubernetes的鏡像下載成功後,再進入到Docker Desktop的"Settings"中,選中標記爲"Enable Kubernetes"的複選框,如圖1.12所示,而後單擊"Apply&Restart"。Docker Desktop開始設置並啓動Kubernetes。當成功啓動Kubernetes後,咱們可看到「Kubernetes is running」,左側狀態顯示綠色,您就會知道一切都已成功完成。

3092722f8bcb4dd88de7ccfd3f1fdf20

圖1.12

配置 Kubernetes 控制檯

一個沒有Web管理界面的Kubernetes對於小白來說是沒有靈魂的。

部署 Kubernetes dashboard


# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

注:若提示"Unable to connect to the server...",能夠多執行幾回,或者先經過其餘途徑Wget下來,而後再執行命令 kubectl apply -f kubernetes-dashboard.yaml 。

開啓 API Server 訪問代理(固然,咱們還可使用NodePort方式發佈Kubernetes dashboard的端口,這樣就不須要啓動kube proxy了,相關設置將在Linux部署版本中講解)

# kubectl proxy &

經過以下 URL 訪問 Kubernetes dashboard,如圖1.13所示,使用kubeconfig登陸。

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default

1577110708(1)

圖1.13

登陸方式一

使用Kubeconfig文件登陸,Kubeconfig文件位於:C:\Users\xxuser\.kube\config

登陸方式二

配置控制檯令牌並使用令牌登陸,如圖1.14所示

1577110543(1)

圖1.14

建立並查看訪問令牌方法如圖1.15所示。


PS C:\Users\tgh> kubectl get pods -n kube-system

NAME                                     READY   STATUS    RESTARTS   AGE

coredns-5c98db65d4-gctdb                 1/1     Running   0          122m

coredns-5c98db65d4-kbvbt                 1/1     Running   0          122m

etcd-docker-desktop                      1/1     Running   0          121m

kube-apiserver-docker-desktop            1/1     Running   0          121m

kube-controller-manager-docker-desktop   1/1     Running   0          120m

kube-proxy-v6lln                         1/1     Running   0          122m

kube-scheduler-docker-desktop            1/1     Running   0          121m

kubernetes-dashboard-7d75c474bb-znk76    1/1     Running   0          22m

  

$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]

kubectl config set-credentials docker-for-desktop --token="${TOKEN}"

echo $TOKEN

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLXN4azhyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyZjZmZWZiYi05NGM3LTQ0NzAtYWNkOS1mNzE1NDBhZDNmN2IiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.SeZDjaQsXdXyYyCh9hXqoAs93C9KXk766BfRBqy_E0u35uonHtLA6hezahMJUPJxcri1-cJHGhAACjTPZvhwq1hJnEQk2WHErh9DUlrcfSbEN0gQ5xxafhFa76praHHgpkRNZD0lgypfRzOtixwee3OPtMm2Jy_4nmwTr2lGAV-_Vu70VMutM1gk9QLVaBJS2NCDKoL_0z6JPqwpNbkIr3fsW8LWOVUSh1NNYbGlnKhjE9EnN_TbviXJpZQ4BUxgIA1IgbUZ9K6mch8Fp4Vawug_kxWu-ZhM21yK35I-cQ-FB7lRamdxhrr2nv8mRI5GX5_D74PbxUC98Uil3iUixA

1fc27cb2db5f4d508fb89a6b88a830bf

圖1.15

成功登陸到Kubernetes 控制檯,如圖1.16所示。

5a6f82136f06485f874b15398e0ec012

圖1.16

接下來咱們就能夠開啓探索Kubernetes之旅了。

相關文章
相關標籤/搜索