windows10 部署 docker+k8s 集群

下面是经过踩坑之后的 windows10 单机部署 docker k8s 步骤,其中有几处比较关键的地方需要注意,后面加粗标注,下面就开始吧!

0、下载cmder

在 windows 上有一个趁手的命令行工具非常有必要,推荐 Cmder,下面是下载地址:

https://cmder.net/

安装完成后,一定要右键使用管理员权限打开,否则后续操作会失败。

1、下载安装配置docker

下载 docker.exe 安装文件:

https://www.docker.com/get-started

下载完成后直接安装,注意安装完成后,右键使用管理员权限启动。一定要使用管理员权限启动,否则 k8s 无法启动,启动后不要开启 k8s,否则会陷入无限等待当中,因为默认的源不可用(长城),只需要启动docker即可。

在 docker 桌面小图标上右键选择 【About Docker Desktop】,会出现下面界面,记住自己的 k8s 版本,后面会用到,从图中看到我的版本是 v1.16.5。

下面还是在 docker 桌面小图标上右键选择 【Dashboard】,进入下图中的界面,然后填入如下内容,然后点击【Apply & Restart】:

1
2
3
4
5
6
7
8
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries": [],
"debug": true,
"experimental": true
}

从上图中可以看到,我的 k8s 已经处于启动状态,请暂时忽略。

下面开始重要的步骤。

2、下载必要的镜像

注意,下面的所有操作都要在以管理员权限打开的命令行中执行

1
2
3
4
5
6
7
8
9
10
11
# 首先预先从阿里云 Docker 镜像服务下载 k8s 所需要的镜像:
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git

# 切换至对应自己安装的 k8s 版本的分支
git checkout v1.16.5

# 执行下面命令以允许脚本的执行
Set-ExecutionPolicy RemoteSigned

# 然后执行命令开始下载 k8s 所需镜像
.\load_images.ps1

下图是可以选择的分支,找到和所安装的 k8s 版本相同的分支即可。

完成上面的操作之后,在命令行输入 docker images 应该可以看到下图的镜像列表中的一部分,只要自己的列表中 k8s.gcr.io 开头的镜像都存在即可。

3、启动 k8s

在镜像下载完成后,启动 k8s 之前,还需要修改 hosts 文件,增加下面内容,否则会启动失败。

1
2
3
4
5
6
7
8
# 命令执行下面操作,注意这里用的命令行工具是 Cmder
# 如果使用 PowerShell 是没有 vim 的,只能自己手动打开目录修改文件
vim C:\Windows\System32\drivers\etc\hosts

# 打开后,按下 i 符号进入编辑状态另起一行,写入下面内容
127.0.0.1 kubernetes.docker.internal

# 接着按下 ESC 键进入 vim 命令行状态,输入 :qw! 保存退出即可

这个时候回到【Dashboard】界面,选中 Enable Kubernetes,然后应用。

下面等待 k8s 启动即可,可以通过查看主界面看是否有容器已经启动,如下图:

可以通过下图中两个命令查看运行情况:

4、配置 Kubernetes 控制台

直接用浏览器打开下面的地址,然后按 Ctrl+s 将文件保存到某个位置。

https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

然后用编辑器打开这个文件,找到对应的 kind 并修改为下面的状态,注意,这一步非常重要,否则安装好的控制台无法使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 30000
selector:
k8s-app: kubernetes-dashboard


apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard

修改完成后执行下面的命令,

1
kubectl create -f kubernetes-dashboard.yaml

会输出如下内容:

在登录之前先用命令获取到登录所需 Token:

1
2
3
4
5
6
7
8
9
10
# 使用下面命令拿到访问令牌
kubectl -n kubernetes-dashboard get secret
# NAME TYPE DATA AGE
# default-token-924zv kubernetes.io/service-account-token 3 52s
# kubernetes-dashboard-certs Opaque 0 52s
# kubernetes-dashboard-csrf Opaque 1 52s
# kubernetes-dashboard-key-holder Opaque 0 52s
# kubernetes-dashboard-token-68h2b kubernetes.io/service-account-token 3 52s

kubectl describe secrets -n kubernetes-dashboard kubernetes-dashboard-token-68h2b | grep token | awk 'NR==3{print $2}'

会输出一个很长的字符串,复制的这个字符串,然后打开浏览器,输入 localhost:30000 访问这个地址,正常情况下会打开下面所示的界面,输入刚刚拿到的 Token 点击登录即可,但如果是 Chrome 可能会存在访问策略问题,解决方法:

  • 换 Firefox 浏览器
  • 直接键盘打字 thisisunsafe 这个字符串,页面会自动刷新并进入图中页面

接着就能看到管理界面了,✿✿ヽ(°▽°)ノ✿,经过很长的步骤终于完成了所有操作。

5、安装 Rancher

Rancher是一个开源的集群管理工具,安装非常简单,只需要命令行输入下面命令即可:

1
docker run -d --restart=unless-stopped -p 10001:80 -p 10002:443 rancher/rancher

等待安装完成后,打开浏览器 https://localhost:10002,Chrome会提示不安全,忽略即可,就可以进入下面界面了:

接下来就是自由探索的时间,踩坑结束。

◀        
        ▶