引言:在Windows上安裝并啟用kubernetes對(duì)于剛接觸Kubernetes的開發(fā)人員是非常有幫助的。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)南充免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
在Windows 10上安裝Docker Desktop
Windows版的Docker Desktop 是社區(qū)版本,您可以從Docker Hub上直接下載,下載鏈接如下:
https://hub.docker.com/?overlay=onboarding
注:在使用stable版(2.1.0.5)時(shí),Docker Desktop偶爾會(huì)出現(xiàn)lifecycleserver超時(shí)無法正常啟動(dòng),而使用Edge(2.1.7.0)版本正常。
系統(tǒng)要求:
1、Windows 10 64位,專業(yè)版、企業(yè)版、教育版(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|/)
2、必須啟用了Hyper-V和windows 容器特性
硬件要求:
1、支持SLAT(Second Level Address Translation)的64位處理器
2、4GB或以上內(nèi)存
3、必須在BIOS中設(shè)置啟用硬件虛擬化
使用Docker Toolbox和Docker Machine或者Vmware的用戶需知
Docker Desktop需要安裝并啟用Microsoft Hyper-V,并重新啟動(dòng)計(jì)算機(jī)。當(dāng)啟用Hyper-V后,VirtualBox或者Vmware將不能再正常使用。然而,任何現(xiàn)有的虛擬機(jī)鏡像都會(huì)被保留。
使用docker-machine創(chuàng)建的VirtualBox虛擬機(jī)(包括安裝Toolbox期間創(chuàng)建的默認(rèn)虛擬機(jī))將不能啟動(dòng)。這些虛擬機(jī)不能與Docker Desktop一起同時(shí)使用。但是,您仍然可以使用docker machine來管理vms。
注意:禁用Hyper-V后,仍可以正常使用VirtualBox和vmware。
安裝Docker Desktop將包含以下內(nèi)容
1、Docker引擎、Docker CLI、Docker Compose、Docker Machine和Kitematic。
2、使用Docker Desktop創(chuàng)建的容器和鏡像在安裝Docker Desktop的計(jì)算機(jī)上的所有用戶帳戶之間共享。這是因?yàn)樗蠾indows帳戶都使用同一個(gè)VM來構(gòu)建和運(yùn)行容器。
3、嵌套的虛擬化場(chǎng)景,例如在VMWare或Parallels實(shí)例上運(yùn)行Docker Desktop,可能可以正常使用,但不能保證。
注意:有關(guān)Docker與Windows"所有控制面板" -->"程序和功能" -->"啟用或關(guān)閉Windows功能",勾選上"Containers"和"Hyper-V",如下圖1.1所示。
圖1.1
安裝完Hyper-V后會(huì)提示重啟系統(tǒng),完成重啟后,我們可以在任務(wù)管理器中看到,在性能菜單中查看到CPU的虛擬化已啟用,如圖1.2所示。
圖1.2
安裝Docker Desktop
接下來開始安裝Docker Desktop,雙擊“Docker Desktop Installer”開始安裝,如圖1.3所示。
圖1.3
按默認(rèn)勾選,完成安裝,如圖1.4所示。
圖1.4
關(guān)于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 10、Windows Server 2016和Windows Server 2019上設(shè)置和運(yùn)行Windows容器的教程(可參考:https://github.com/docker/labs/blob/master/windows/windows-containers/README.md)。
安裝完成后,會(huì)提示注銷當(dāng)前用戶并重新登錄,點(diǎn)擊"Close and log out",重新登錄后,Docker Desktop會(huì)自動(dòng)運(yùn)行,這需要一定的時(shí)間才能完成啟動(dòng),在啟動(dòng)過程中可能會(huì)告知Hyper-V和Containers的特性還未啟用,詢問是否啟用,如圖1.5所示,點(diǎn)擊“OK"。
圖1.5
Docker Desktop啟動(dòng)成功后,您應(yīng)該會(huì)在電腦右下角的系統(tǒng)托盤中看到Docker圖標(biāo),并且顏色是白色狀態(tài)(若為紅色則表示啟動(dòng)異常),如圖1.6所示。然后還會(huì)彈出登錄Docker Hub的對(duì)話框,如下圖所示,如果你在Docker Hub上有注冊(cè)過賬號(hào),此時(shí)是可以登錄的,如圖1.7所示。
圖1.6
圖1.7
右擊系統(tǒng)托盤的docker圖標(biāo),點(diǎn)擊"About Docker Desktop",獲取各組件版本信息,如圖1.8所示。
圖1.8
啟用Kubernetes
右擊系統(tǒng)托盤的docker圖標(biāo),在導(dǎo)航中,選擇“Settints" ,如圖1.9所示。
圖1.9
首先,設(shè)置Docker的鏡像源為daocloud,便于后續(xù)鏡像加速下載,如圖1.10所示。
圖1.10
{
? "registry-mirrors": [“http://f1361db2.m.daocloud.io”],
? "insecure-registries": [],
? "debug": true,
? "experimental": true
}
若我們直接在Setttings中勾選并啟動(dòng)kubernetes是無法啟動(dòng)成功的,原因是Docker Desktop在初始化kubernetes時(shí)所用到的鏡像image都是國(guó)外源,無法下載成功。可以從 https://github.com/AliyunContainerService/k8s-for-docker-desktop 下載。
當(dāng)前master分支默認(rèn)為1.15.5版本,而我們安裝的Docker Desktop中的Kubernetes版本就是1.15.5,所以克隆后,不需要checkout到其他分支
# git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
在Windows上,使用 PowerShell執(zhí)行以命令命令,如圖1.11所示
.\load_images.ps1
若報(bào)提示禁止運(yùn)行腳本問題,則先以管理員運(yùn)行PowerShell,并執(zhí)行以下命令,按"Y"鍵確認(rèn)
Set-ExecutionPolicy –ExecutionPolicy
圖1.11
kubernetes的鏡像下載成功后,再進(jìn)入到Docker Desktop的"Settings"中,選中標(biāo)記為"Enable Kubernetes"的復(fù)選框,如圖1.12所示,然后單擊"Apply&Restart"。Docker Desktop開始設(shè)置并啟動(dòng)Kubernetes。當(dāng)成功啟動(dòng)Kubernetes后,我們可看到“Kubernetes is running”,左側(cè)狀態(tài)顯示綠色,您就會(huì)知道一切都已成功完成。
圖1.12
配置 Kubernetes 控制臺(tái)
一個(gè)沒有Web管理界面的Kubernetes對(duì)于小白來講是沒有靈魂的。
部署 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...",可以多執(zhí)行幾次,或者先通過其他途徑Wget下來,然后再執(zhí)行命令 kubectl apply -f kubernetes-dashboard.yaml 。
開啟 API Server 訪問代理(當(dāng)然,我們還可以使用NodePort方式發(fā)布Kubernetes dashboard的端口,這樣就不需要啟動(dòng)kube proxy了,相關(guān)設(shè)置將在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
登錄方式二
配置控制臺(tái)令牌并使用令牌登錄,如圖1.14所示
圖1.14
創(chuàng)建并查看訪問令牌方法如圖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_0z6JPqwpNbkIr3fsW8LWOVUSh2NNYbGlnKhjE9EnN_TbviXJpZQ4BUxgIA1IgbUZ9K6mch8Fp4Vawug_kxWu-ZhM21yK35I-cQ-FB7lRamdxhrr2nv8mRI5GX5_D74PbxUC98Uil3iUixA
圖1.15
成功登錄到Kubernetes 控制臺(tái),如圖1.16所示。
圖1.16
為了確認(rèn)Kubernetes已啟動(dòng)并正常運(yùn)行,現(xiàn)在創(chuàng)建一個(gè)名為pod.yaml的文本文件,其中包含以下內(nèi)容:
apiVersion: v1
kind: Pod
metadata:
? name: demo
spec:
? containers:
? - name: testpod
? ? image: alpine:3.5
? ? command: ["ping", "114.114.114.114"]
如圖1.17所示
圖1.17
這段yaml配置用于創(chuàng)建一個(gè)pod,并且該pod中僅有一個(gè)容器(副本數(shù)為1),在該容器中執(zhí)行ping命令。
在Powershell中執(zhí)行如下命令創(chuàng)建pod。
kubectl?apply?-f?pod.yaml
查看pod是否正常運(yùn)行
#?kubectl?get?pods
查看pod日志?
#?kubectl?logs?demo
如圖1.18所示。
圖1.18
最后,刪除這個(gè)pod,如圖1.19所示。
圖1.19
接下來我們就可以開啟探索Kubernetes之旅了。