在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之旅了。

相关文章
相关标签/搜索