ReturnTmp's Blog ReturnTmp's Blog
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ReturnTmp

分享有趣好玩的计算机知识
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • GLIBC_2.28 not found 问题解决
  • Monorepo 多项目单仓库
  • Renovate 第三方依赖更新监控
  • 【IDEA】Maven 构建项目生成文件解析
  • K8s

    • k8s 入门指南
    • K8s 集群 Windows 安装部署指南
      • 前言
      • Docker
        • 安装
        • 配置加速
      • Minikube
        • 环境要求
        • 安装
        • 启动
        • 问题
        • 镜像拉取过慢
        • GUEST_STATUS 问题
      • kubectl
        • 安装
        • 配置
        • 问题
      • 补充
        • 镜像缓存
        • Docker
        • Minikube
      • 参考链接
    • K8s 部署
    • K8s 入门指南(一):单节点集群环境搭建
    • K8s 入门指南(一):单节点集群环境搭建(ubuntu)
    • K8s 入门指南(二):实战概念讲解
  • Zotero 使用指南
  • package-lock.json 是否提交问题
  • 『ARM』和『x86』处理器架构解析指南
  • GlassFish 安装配置
  • 手把手教你安装配置『Oracle Database 19c』
  • Oracle Database 19c 彻底卸载
  • 语雀故障回顾
  • OpenStack 云计算平台 Nova 计算服务学习指南
  • Vue devServer 教程
  • Swagger 导出 API 文档
  • MapStruct POJO 映射框架指南
  • IDEA 代码热部署和热加载
  • SpringBoot 启动参数配置
  • Nacos 入门指南
  • seleuim 指南
  • Spring 服务降级熔断
  • Maven BOM 解析
  • .vscode 文件夹
  • Spring Security Token 认证
  • SpringBoot 基于 Actuator 和 Admin 实现应用监控管理
  • SPM/SCM 流量跟踪体系
  • Netty 入门
  • Flyway 数据库版本管理实战指南
  • Swagger 2 和 3 安装区别
  • MP 配置分页
  • MySQL 分库分表
  • Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准
  • VSCode 插件 i18n Ally 进行国家化配置
  • Vue3 组合式 全局挂载
  • TS 教程
  • 架构解析:同城双活、异地多活、单元化架构
  • Spring 跨域配置
  • SpringCloud 微服务实战
  • Sentinel 流量治理组件教程
  • leetcode 上分
  • JMeter 压测
  • Netty IM 系统
  • IDEA 插件开发
  • SpringBoot 邮件服务 集成配置 详解
  • Maven 依赖包冲突问题解决
  • 社区项目 forest 修改
  • Maven 项目命名规范
  • 新版 PyCharm 设置 Conda 虚拟环境
  • 框架工具
  • K8s
ReturnTmp
2023-12-04
目录

K8s 集群 Windows 安装部署指南

# 前言

官方中文文档:Kubernetes 文档 | Kubernetes (opens new window)

注:本次使用版本为 v 1.28 (当前最新稳定版本)

本文将会主要讲解如何在 Windows 平台搭建部署 K8s 集群的全流程

# Docker

# 安装

对于 Windows 平台,可以使用 Docker Desktop 来使用 Docker,当然如果有 WSL,在 WSL 中安装也是可以的

官方下载链接:Install Docker Desktop on Windows | Docker Docs (opens new window)

然后按照步骤安装即可,需要注意的就是要开启 Hyper-V 功能(如果已经安装 WSL 2 可以忽略此句)

# 配置加速

阿里云镜像加速地址:容器镜像服务_镜像构建_镜像授权_镜像托管-阿里云 (aliyun.com) (opens new window)

image.png

复制图中的地址,然后替换 Docker Desktop 中的配置地址,之后点击右下角 Apply & restart 即可

image.png

之后使用 docker version 查看是否成功即可

image.png

# Minikube

Minikube 是一种轻量级的 Kubernetes 实现,可在本地计算机上创建 VM 并部署仅包含一个节点的简单集群。 Minikube 可用于 Linux、macOS 和 Windows 系统。 Minikube CLI 提供了用于引导集群工作的多种操作,包括启动、停止、查看状态和删除

# 环境要求

  • 至少2 个 CPU
  • 至少2GB 可用内存
  • 至少 20 GB 可用硬盘存储
  • 已连接互联网
  • 至少安装了下列容器或虚拟机管理软件中的一种,如:Docker、QEMU、Podman、VirtualBox 或 VMware Workstation

# 安装

官方文档:minikube start | minikube (k8s.io) (opens new window)

下载链接:latest release (storage.googleapis.com) (opens new window)

执行 minikube-installer.exe 后,然后添加minikube.exe到 PATH 中(一般是安装脚本中默认添加)

# 启动

启动集群(需要具有管理员权限)

该命令将会下载镜像并创建一个单节点 k8s 集群

minikube start
1

image.png

之后启动集群成功可以使用 minikube ssh 进入集群,并使用 docker ps 查看运行容器实例

然后我们退出集群之后,执行 minikube dashboard 即可查看仪表盘

# 问题

# 镜像拉取过慢

如果镜像拉取过慢,可以使用如下命令

注:下面这种做法实测失效,可能是因为 minikube 版本过新(旧版本是可行的),国内阿里云镜像未同步更新,导致一直使用失败,所以成功做法还是使用 minikube start ,使用国外谷歌镜像仓库,不过可以开全局代理加速访问

minikube start --image-mirror-country='cn' --driver='docker'
1

这里国内还是国外唯一区别就是 --image-mirror-country='cn' 参数,如果之前配置默认为国内可以省略,国内默认镜像为 registry.cn-hangzhou.aliyuncs.com/google_containers

--driver='docker' 是把所有的镜像 pull 到 minikube 内部的 docker,而 --driver='none' 而 none 则直接使用宿主机 docker。导致的结果:docker 驱动需要用 minikube cache add registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v5

结果发现启动失败,找不到这个基础镜像

image.png

那么就指定这个为基础镜像,然后启动即可,然后依旧失败

 minikube start  --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --driver='docker' --base-image='registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.42'
1

# GUEST_STATUS 问题

使用 minikube ssh 进入集群爆出 Exiting due to GUEST_STATUS: state: unknown state "minikube": docker container inspect minikube --format=: exit status 1

如果是 linux 用户解决方案如下

sudo chmod 666 /var/run/docker.sock  
sudo usermod -aG docker ${USER}”
1
2

但是很明显 windows 用户并不行

# kubectl

kubectl 是 Kubernetes 的命令行工具(CLI),是 Kubernetes 用户和管理员必备的管理工具,kubectl 提供了大量的子命令,方便管理 Kubernetes 集群中的各种功能

# 安装

官方文档:在 Windows 上安装 kubectl | Kubernetes (opens new window)

注:kubectl 版本和集群版本之间的差异必须在一个小版本号内。例如:v 1.24 版本的客户端能与 v 1.23、 v 1.24 和 v 1.25 版本的控制面通信

kubectl 1.28.4 下载地址:kubectl 1.28.4 (k8s.io) (opens new window)

将 kubectl 二进制文件夹追加或插入到你的 PATH 环境变量中,测试一下,确保此 kubectl 的版本和期望版本一致

注:某些版本 Docker Desktop 会将其自带版本的 kubectl 添加到 PATH,可能需要把此 PATH 条目置于 Docker Desktop 安装的条目之前,或者直接删掉 Docker Desktop 的 kubectl

kubectl version --client
1

# 配置

为了让 kubectl 能发现并访问 Kubernetes 集群,你需要一个 kubeconfig 文件, 该文件在 kube-up.sh 创建集群时,或成功部署一个 Minikube 集群时,均会自动生成。 通常,kubectl 的配置信息存放于文件 ~/.kube/config 中

kubectl 默认会从$HOME/.kube 目录下查找文件名为 config 的文件,也能通过设置环境变量 KUBECONFIG 或者通过设置去指定其它 kubeconfig 文件,kubeconfig 就是为访问集群所作的配置。我们也可以把线上 kubernetes 集群的配置信息放入 config 文件中去,这样我们就可以用 kubectl 直接访问 kubernetes 集群

# 进入当前用户目录
cd

# 创建目录 .kube
mkdir .kube

# 切换到新创建的目录 .kube
cd .kube
1
2
3
4
5
6
7
8

# 问题

如果出现 Unable to load cached images问题,可能是没有配置国内阿里云镜像,或是在配置镜像仓库之前执行 minikube start

需要先清除缓存,然后再配置镜像,最后再启动

如果是使用的是 Docker Desktop 的话,直接上面图形化配置镜像即可,然后执行如下

# 必须清除缓存
minikube delete
minikube start
1
2
3

如果是命令行可以参考如下

minikube delete  # 必需先清除缓存后再继续
minikube start --image-mirror-country='cn' --driver docker
1
2

参考官方链接:在 Windows 上安装 kubectl | Kubernetes (opens new window)

# 补充

# 镜像缓存

# Docker

单独清除镜像命令 docker rm i ,但是该命令无法删除docker build 的缓存镜像,即 Build Cache

我们可以使用 docker system df 查看缓存情况,然后执行如下命令清除所有未使用的镜像(包括 Build Cache)

docker system prune -a --force
1

# Minikube

使用 minikube 时间比较长,就会发现~/.minikube 占用空间很大,这其中占用空间比较大的就是镜像缓存,位置在 ~/.minikube/cache/images

查看本地镜像缓存

minikube cache list
1

删除指定缓存

minikube cache delete <image name>
1

# 参考链接

  • 在Windows 10平台下搭建k8s+docker开发环境 - 掘金 (juejin.cn) (opens new window)
  • Windows10 Docker安装详细教程 - 知乎 (zhihu.com) (opens new window)
  • Unable to load cached images_unable to load cached images (opens new window)
  • Windows配置kubectl - 掘金 (juejin.cn) (opens new window)
  • 在 Windows 上安装 kubectl - makalo - 博客园 (cnblogs.com) (opens new window)
  • minikube镜像缓存 - 简书 (jianshu.com) (opens new window)
  • Docker 深度清除镜像缓存 (overlay2) - 掘金 (juejin.cn) (opens new window)
  • minikube start 国内服务器无法启动_unable to find image (opens new window)
  • Exiting due to GUEST_STATUS: state: unknown state "minikube" (opens new window)
编辑 (opens new window)
上次更新: 2024/01/02, 01:26:45
k8s 入门指南
K8s 部署

← k8s 入门指南 K8s 部署→

最近更新
01
百度网盘加速
03-24
02
新版 PyCharm 设置 Conda 虚拟环境
03-24
03
腾讯云域名转到阿里云
03-24
更多文章>
Theme by Vdoing | Copyright © 2023-2024 ReturnTmp | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式