引言:在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所示。
圖1.1
安裝完Hyper-V後會提示重啓系統,完成重啓後,咱們能夠在任務管理器中看到,在性能菜單中查看到CPU的虛擬化已啓用,如圖1.2所示。
圖1.2
安裝Docker Desktop
接下來開始安裝Docker Desktop,雙擊「Docker Desktop Installer」開始安裝,如圖1.3所示。
圖1.3
按默認勾選,完成安裝,如圖1.4所示。
圖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"。
圖1.5
Docker Desktop啓動成功後,您應該會在電腦右下角的系統托盤中看到Docker圖標,而且顏色是白色狀態(若爲紅色則表示啓動異常),如圖1.6所示。而後還會彈出登陸Docker Hub的對話框,以下圖所示,若是你在Docker Hub上有註冊過帳號,此時是能夠登陸的,如圖1.7所示。
圖1.6
圖1.7
右擊系統托盤的docker圖標,點擊"About Docker Desktop",獲取各組件版本信息,如圖1.8所示。
圖1.8
啓用Kubernetes
右擊系統托盤的docker圖標,在導航中,選擇「Settints" ,如圖1.9所示。
圖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
圖1.11
kubernetes的鏡像下載成功後,再進入到Docker Desktop的"Settings"中,選中標記爲"Enable Kubernetes"的複選框,如圖1.12所示,而後單擊"Apply&Restart"。Docker Desktop開始設置並啓動Kubernetes。當成功啓動Kubernetes後,咱們可看到「Kubernetes is running」,左側狀態顯示綠色,您就會知道一切都已成功完成。
圖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
圖1.13
登陸方式一
使用Kubeconfig文件登陸,Kubeconfig文件位於:C:\Users\xxuser\.kube\config
登陸方式二
配置控制檯令牌並使用令牌登陸,如圖1.14所示
圖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
圖1.15
成功登陸到Kubernetes 控制檯,如圖1.16所示。
圖1.16
接下來咱們就能夠開啓探索Kubernetes之旅了。