作为目前事实上的容器编排系统标准,K8s 无疑是现代云原生应用的基石,很多同学入门可能直接就被卡到第一关,从哪去弄个 K8s 的环境, Docker Desktop 自带了Kubernetes 服务,但是在过往的经验中就是用梯子也安装不了,卡在拉取k8s 镜像的过程中。因此阿里云有一个项目 k8s-for-docker-desktop 帮助大家拉取镜像,大家现在通过网络找到的相关文章都是基于这个项目进行的操作。这个项目最新的一些k8s 版本没有,对于一个硬性需求的项目突然不活跃了,肯定是有原因的,这也正是我写这篇博客要和你分享的内容。

接下来就开始我们直接在 Docker Desktop上启用Kubernetes 1.25 的过程记录。

1、在电脑上安装好 Docker Desktop 4.12,所带的kubernetes 1.25,如果可以的话,推荐使用 WSL 作为宿主,后面运行 Docker 时的性能会更好些。最新版的软件在安装时也是会默认使用 WSL 作为宿主的。

安装 Docker 之前需要你在 BIOS 中开启虚拟化,同时基于你的宿主程序的选择,你还需要执行如下的操作

  1. 使用 WSL2 作为宿主:在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭 Windows 功能” 勾选上适用于 Linux 的 Windows 子系统,然后在 Microsoft 商城中下载一个 Linux 的发行版本
  2. 使用 Hyper-V 作为宿主:在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭 Windows 功能” 勾选上 Hyper-V(没记错的话,如果你有安装别的虚拟机软件,启用 Hyper-V 后原来的虚拟机由于冲突是没办法继续使用了)

这里要注意,以后你看到这篇文章的时候用的是更新的版本:

Docker Desktop 中内置的 K8s 其实是依赖于相关的镜像,由于这些镜像位于 google 的服务器上,因此基本上是无法正常拉取下来的,所以这里就需要借助镜像网站将这些 docker 镜像拉取到本地。

因为直接从 国外 Docker Hub 拉取镜像的速度是非常慢的,所以安装完成之后我们可以配置镜像网站地址,加速 docker 镜像的拉取

找到 Docker 的设置页面,在 Docker Engine 页面,将镜像网站的地址加入到右侧配置文件的 registry-mirrors 节点下面,这里我使用的是 Docker阿里云镜像和中科大的镜像网站地址,调整完成之后重启 Dokcer 即可

{
   "builder": {
     "gc": {
       "defaultKeepStorage": "20GB",
       "enabled": true
     }
   },
   "experimental": false,
   "features": {
     "buildkit": true
   },
   "live-restore": true,
   "registry-mirrors": [
     "https://docker.mirrors.ustc.edu.cn",
     "https://cr.console.aliyun.com/"
   ]

}

镜像地址配置完成之后,做一下清理工作

打开 Docker 的设置页面,找到 Kubernetes 页面,选中 Enable Kubernetes,然后点击 Apply & Restart,这个执行过程有个几十分钟到数小时,具体看网络情况,建议在人少的早餐6-7之间来做。

当左下角出现 K8s 的 logo,并逐步变为绿色,整个 K8s 的环境也就运行起来了。此时我们就可以通过 kubectl 来操作集群,可以看到这里已经可以打印出整个“集群”的信息

上图中我们看到Docker 桌面的k8s 服务使用到了下列镜像:

C:\Users\zsygz>docker images

REPOSITORY                                                TAG                                                                          IMAGE ID       CREATED         SIZE

hubproxy.docker.internal:5000/docker/desktop-kubernetes   kubernetes-v1.25.0-cni-v1.1.1-critools-v1.24.2-cri-dockerd-v0.2.5-1-debian   2042e761d17a   6 weeks ago     363MB

k8s.gcr.io/kube-apiserver                                 v1.25.0                                                                      4d2edfd10d3e   6 weeks ago     128MB

k8s.gcr.io/kube-controller-manager                        v1.25.0                                                                      1a54c86c03a6   6 weeks ago     117MB

k8s.gcr.io/kube-scheduler                                 v1.25.0                                                                      bef2cf311509   6 weeks ago     50.6MB

k8s.gcr.io/kube-proxy                                     v1.25.0                                                                      58a9a0c6d96f   6 weeks ago     61.7MB

k8s.gcr.io/pause                                          3.8                                                                          4873874c08ef   3 months ago    711kB

k8s.gcr.io/etcd                                           3.5.4-0                                                                      a8a176a5d5d6   4 months ago    300MB

k8s.gcr.io/coredns                                        v1.9.3                                                                       5185b96f0bec   4 months ago    48.8MB

docker/desktop-vpnkit-controller                          v2.0                                                                         8c2c38aa676e   17 months ago   21MB

docker/desktop-storage-provisioner                        v2.0                                                                         99f89471f470   17 months ago   41.9MB

Docker Desktop 可以直接启用Kubernetes 1.25 了的更多相关文章

  1. Mac OS用docker Desktop安装单节点kubernetes

    方案: 安装方式:阿里云minikube,k8s官方minikube,kubeadm, docker Desktop中自带第k8s 安装环境:在linux虚拟机中安装k8s,在macos中安装k8s, ...

  2. 为Docker Desktop安装kubernet-dashboard

    在上一篇,在windows上,用最简方法(比其他的脚本法,提前拉取镜像简便太多了)安装好了docker desktop,并启用了内置的kubernetes. 这种安装方法实际上是在Hyper-v虚拟机 ...

  3. Docker Desktop启动Kubernetes

    Docker_Desktop启动Kubernetes 参考仓库:https://github.com/AliyunContainerService/k8s-for-docker-desktop 视频参 ...

  4. 在 Docker Desktop 中启用 K8s 服务

    Overview 作为目前事实上的容器编排系统标准,K8s 无疑是现代应用的基石,很多同学入门可能直接就被卡到第一关,从哪去弄个 K8s 的环境 自己搭吧,要求的硬件资源太高,基本上搭建一个 K8s ...

  5. 关于Kubernetes(简称K8S)的开启及基本使用,基于Docker Desktop & WSL2

    背景介绍 Kubernetes(简称k8s)已成为目前业界容器编排的事实标准,其搭配Docker可建立非常高效便捷的高可扩展.高可用应用服务架构. Kubernetes的名字来自希腊语,意思是&quo ...

  6. 基于docker和cri-dockerd部署kubernetes v1.25.3

    基于docker和cri-dockerd部署kubernetes v1.25.3 1.环境准备 1-1.主机清单 主机名 IP地址 系统版本 k8s-master01 k8s-master01.wan ...

  7. Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂

    1 前言 Kubernetes又简称k8s,是Google开源的容器集群管理系统,最近也是火热.闲来无事(为了发文),捣鼓了一下,在Mac上搭建Kubernetes,遇到一些坑,也记录一下. 另外,D ...

  8. Mac上使用Docker Desktop安装Kubernetes

    下载镜像需要特殊手段,你懂的,如果没有特殊手段,建议放弃这种方式. 1 启用Kubernetes 启用过程,会联网下载kubenetes相关的核心组件镜像,如下是我下载好的: 下载好了,kubenet ...

  9. Docker Desktop for Windows 安装步骤

    Docker Desktop for Windows 安装要求 Docker Desktop for Windows需要运行Microsoft Hyper-V.如果需要,Docker Desktop ...

随机推荐

  1. angular变更检测相关文章

    你需要了解的关于Angular 变更检测的一切 If you think `ngDoCheck` means your component is being checked - read this a ...

  2. 简短截说阐述redis中事务的使用

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_127 我们知道,在关系型数据库中,比如mysql,如果要使用事务,首先向数据库服务器发送 BEGIN ,然后执行各个相互一致的写操 ...

  3. JavaWeb--Cookie与Session

    前言 Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件. 整个javaWeb阶段的内容通过实际的案例贯穿学习, 所涉及到的技术知识点会 ...

  4. EPLAN 中的符号、元件、部件与设备之间的区别

    符号(Symbol):电气符号是电器设备(Electrical equipment)的一种图形表达,符号存放在符号库中,是广大电气工程师之间的交流语言,用来传递系统控制的设计思维的.将设计思维体现出来 ...

  5. CF360E Levko and Game(贪心)

    这题贪心停水的,找\(dis1<=dis2\)的点往歇斯底里地砍,砍到没法砍就是. 写博客是为了记录下遇到的神奇bug #include <iostream> #include &l ...

  6. 带你徒手完成基于MindSpore的CycleGAN实现

    摘要:CycleGAN图像翻译模型,由两个生成网络和两个判别网络组成,通过非成对的图片将某一类图片转换成另外一类图片,可用于风格迁移 本文分享自华为云社区<基于MindSpore的CycleGA ...

  7. 【java】学习路径31-文件IO基本操作(未涉及到流)

    一.初始化: File f1 = new File("//Users//Shared//JavaIOTest//Test01.txt"); File f2 = new File(& ...

  8. pod资源的健康检查-liveness探针的exec使用

    使用探针的方式对pod资源健康检查 探针的种类 livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否 ...

  9. SpringCache的基本使用

    SpringCache SpringCache是一个框架,实现了基于注解的缓存功能.SpringCache提供了一层抽象,底层可以切换不同的cache实现.具体是通过CacheManager接口来统一 ...

  10. Java代码自动计算机

    答案(这里面包括main方法不要写重了),copy即可使用: public static void main(String[] args) { while (true){ System.out.pri ...