前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >windows单机搭建k8s环境

windows单机搭建k8s环境

原创
作者头像
DifficultWork
修改2021-04-01 09:49:47
10.2K0
修改2021-04-01 09:49:47
举报
文章被收录于专栏:阶梯计划阶梯计划

准备工作

  • 电脑硬件:支持虚拟化的CPU,内存最好在32G以上,16G也可以
  • 操作系统:window10 专业版

1 开启虚拟化

1.1 BIOS

由于主板和CPU的品牌不太一样,这里的操作仅供参考,以Intel的平台为例:

进入BIOS→找到【Configuration】或者【Security】选项→选择【Virtualization】→将【Intel (R) Virtualization Technology】以及【Intel (R) VT-d Feature】设置为【Enable】

然后保存BIOS重启。

1.2 开启Hyper-V

打开控制面板选择程序与功能
打开控制面板选择程序与功能
选择启动或关闭windows功能
选择启动或关闭windows功能
勾选指定选项
勾选指定选项
勾选指定选项
勾选指定选项

然后重启电脑,打开任务管理器,查看虚拟化已经启动

虚拟化已启动
虚拟化已启动

2 安装docker desktop并设置WSL2

2.1 下载docker desktop for windows

官网地址

2.2 安装

image.png
image.png

安装完成后重启电脑

2.3 从C盘将WSL2的文件迁移到其他分区

最新的Docker Desktop默认使用WSL 2来运行的,按照上面的提示说这样性能更好:

但是WSL2默认把文件放到C盘,而且控制台上也没提供设置数据存放目录,看官网说明,启用WSL后,docker运行数据都在WSL发行版中,文件位置都只能由WSL管理:

这两个目录是放在C盘下的,运行过多容器对C盘压力不小...

下面是迁移步骤:

  • 右键点击右下角docker的图标选择【Quit Docker Desktop】关闭docker
  • 关闭所有发行版:
代码语言:txt
复制
    wsl --shutdown
  • 将docker-desktop-data导出到指定分区的目录下,以【D:\wsl\docker-desktop-data\docker-desktop-data.tar】为例(原有的docker images不会一起导出):
代码语言:txt
复制
    wsl --export docker-desktop-data D:\wsl\docker-desktop-data\docker-desktop-data.tar
  • 注销当前的docker-desktop-data:
代码语言:txt
复制
    wsl --unregister docker-desktop-data
  • 重新导入docker-desktop-data到要存放的文件夹(D:\wsl\docker-desktop-data):
代码语言:txt
复制
    wsl --import docker-desktop-data D:\wsl\docker-desktop-data\ D:\wsl\docker-desktop-data\docker-desktop-data.tar --version 2

只需要迁移docker-desktop-data一个发行版就可以(另外一个不用管,占用空间很小)。完成以上操作后,原来的%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx就迁移到新目录了:

重新启动docker完成迁移。

2.4 验证docker

打开命令行查看docker版本:

代码语言:txt
复制
    docker version

3 安装Kebernetes

3.1 准备镜像

k8s的官方镜像地址国内无法直接下载,可以使用中科大的镜像加速地址:

代码语言:txt
复制
    https://docker.mirrors.ustc.edu.cn
  • 打开docker的设置,将加速地址添加进去:
  • 然后查看一下安装的Docker Desktop版本以及配套的k8s版本:
  • 访问阿里云的脚本仓,下载对应版本的脚本:
  • 默认windows会阻止ps脚本运行,先使用管理员身份运行powershell:
  • 在powershell命令行下进入到刚才下载的脚本目录,先开启策略→选择是→执行脚本→关闭策略:
代码语言:txt
复制
 Set-ExecutionPolicy RemoteSigned
 Y
 .\load_images.ps1
 Set-ExecutionPolicy Restricted
 Y

如此镜像就已经下载好了,可以关闭powershell。

3.2 启动k8s集群

打开Docker Desktop控制台,可以使能Kubernetes了(启动需要等一段时间):

完成后左下的Kubernetes状态会变成绿色。

3.3 下载kubectl客户端

官网最新版本下载地址

下载后将该文件移动到【C:\Windows\System32】下面,就可以在命令行使用kubectl了(也可以通过修改环境变量PATH达到相同效果)。

3.4 验证k8s集群

  • 切换当前集群
代码语言:txt
复制
 kubectl config use-context docker-desktop
  • 验证集群状态
代码语言:txt
复制
 kubectl cluster-info
 kubectl get nodes

3.5 安装Dashboard

Dashboard版本是独立演进的,这个是可选的,习惯命令行的可以略过。

  • 使用kubectl apply进行部署,截止笔者当前的最新版本为v2.2.0,部署命令如下:
代码语言:txt
复制
 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
  • 部署完成后可以启动Kubernetes API Server 访问代理(注意:dashboard缺省会占用8001端口)。
代码语言:txt
复制
 kubectl proxy
  • 打开浏览器,访问 Kubernetes Dashboard: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 提示需要Token:
  • 通过命令行获取Token
代码语言:txt
复制
 kubectl -n kube-system describe secret default
  • 将上一步的Token字符串复制下来设置为集群的Token
代码语言:txt
复制
 kubectl config set-credentials docker-desktop --token=
  • 然后复制Token粘贴到登录页下即可登录到dashboard:

4 创建服务

使用dashboard可以开启创建服务了:

参考文档

手把手带你玩转k8s-win10上搭建k8s集群

如何成功启动 Docker 自带的 Kubernetes

后记

由于ingress-nginx安装还有点问题,后续再介绍。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 1 开启虚拟化
    • 1.1 BIOS
      • 1.2 开启Hyper-V
      • 2 安装docker desktop并设置WSL2
        • 2.1 下载docker desktop for windows
          • 2.2 安装
            • 2.3 从C盘将WSL2的文件迁移到其他分区
              • 2.4 验证docker
              • 3 安装Kebernetes
                • 3.1 准备镜像
                  • 3.2 启动k8s集群
                    • 3.3 下载kubectl客户端
                      • 3.4 验证k8s集群
                        • 3.5 安装Dashboard
                        • 4 创建服务
                        • 参考文档
                        • 后记
                        相关产品与服务
                        容器服务
                        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档