当前位置: 首页 > news >正文

在windows学习Kubernetes的几个障碍

1 概述

要学习Kubernetes,最好有个环境可以直接就把命令执行起来看效果,就像学编程语言先运行一个HelloWorld一样。普通人的电脑大多都是Windows环境的,但Kubernetes天然就不匹配Windows环境,要想在Windows上配置出一个Kubernetes的环境还真不容易。

一种办法就是用虚拟机的方式在Windows上先搭建Linux的虚拟机环境,然后在Linux环境上面安装Kubernetes。另外一种办法就是解决Windows里的各种环境问题,把Kubernetes在Windows上安装起来。如果希望在Windows建一个简单的Kubernetes环境,以便能够快速试验Kubernetes的各种操作,即使对这个环境要求不高,也面临几个障碍需要克服。

2 Windows上的障碍

2.1 网络

Kubernetes的安装需要软件包,运行里面的容器需要有镜像包,安装的过程中还有相关的依赖,这些大多都需要访问国外的网络,访问这些网络的时候就经常会遇到网络问题,提示的错误却不一定能够体现出网络问题,定位这些问题比较浪费时间。

一种方法就是找各种替代源来解决一部分问题,比如镜像源、从国内网络下载安装包等。在网络上找到一系列的镜像源,有可能可以用,有可能不可以用,配置完之后还可能有相关的问题,也比较费时间。

另外一种方法就是弄一个特殊网络,搞定了特殊网络,就可以省掉很多定位跟网络有关的问题时间,整个过程也会比较顺利一些。

2.2 安装

要安装Kubernetes,得先有个Linux环境。要在Windows上安装Linux环境,比较好的方式就是先安装虚拟化工具(比如VirtualBox或VMWare),再使用虚拟化工具创建出Linux虚拟机,才能在Linux虚拟机上安装Kubernetes。Kubernetes官方并没有提供很方便的安装方式,社区倒是提供了各种各样的方案,比如kubeadm,要折腾一番功夫才能够搞定。

安装Kubernetes并不是这个场景的目的,如果能够不需要安装Kubernetes,而能够直接使用就更省事。Windows 10之后支持了WSL(Windows Subsystem for Linux),就具备了一定的Linux能力,可以利用这个能力去简化安装。有了WSL的支持,安装Docker Desktop就跟安装一个普通的exe软件一样简单,Docker Desktop的官方下载网址为 https://www.docker.com/。

安装好Docker Desktop之后,进入Docker Desktop界面,点击右上角的Settings齿轮按钮,选择左侧的Kubernetes子菜单,勾选右侧的“Enable Kubernetes”,点击“Apply & restart”,操作见下图。如果特殊网络通畅的话,Kubernetes就会自动安装并重启完成,很简单地就装好了一个单机版的Kubernetes环境,这样就可以专注于学习Kubernetes的操作和原理了。(强调一下网络,如果网络不好,也是困难重重)

2.3 存储

在学习Kubernetes的时候,网上也挺多例子的,但真的自己拿来模仿,也会遇到各种各样的问题,特别是和PV和Volume有关的。要存储数据,就需要用到PV和Volume。很多例子都是弄个空目录或者给的是个NFS(Network File System),空目录看不见摸不着,NFS则需要一套复杂的安装,这样就导致要想成功运行一个带存储的例子,也不容易。

最直观的就是希望把数据存储到自己指定的一个目录下,windows的目录一般是盘符后带个路径,如D:/a/b/c,但如果把这个目录配置到Volume的hostPath里,那得到的就是个找不到目录的错误。

这个错误是由于对运行的环境有误解,Kubernetes是需要运行在Linux环境上的,虽然通过Docker Desktop简化了安装,但它仍然是运行在Linux环境上的。也就是说Windows上有个常规看不见的Linux系统在支撑着Kubernetes的运行,这个Linux系统就是WSL。当操作目录的时候,要记着Kubernetes用的是Linux上的目录,而不是Windows的目录。

在Windows的文件夹地址栏里输入:\\wsl.localhost\\docker-desktop,就可以进入这个Linux系统的文件目录,Windows的各个盘(如C盘、D盘等)是挂载到/mnt/host目录下的,如果希望Volume指定的目录是D:/a/b/c,那么指定的路径应该是/mnt/host/d/a/b/c,也就是要有个思想转换:指定的目录要把Windows目录转为Linux目录。

2.4 日志

这个障碍与Windows无关,而是学习Kubernetes的时候遇到的障碍之一。Kubernetes使用声明式的方式来管理所有事情,操作基本都是写一个或者改一下yaml配置文件,然后执行kubectl apply -f xxx.yaml命令。好处是如果顺利的话就非常方便,缺点就是如果出错了就没有即时的错误反馈。因为它并没有像命令式那样,每执行一个命令就给一个反馈,即使错误了也知道是这个命令产生的错误。声明式面对是一个yaml文件,可能是一个复杂的yaml配置文件,不知道是哪里出错了。

这个时候就需要靠日志来了解具体的情况了。下面给3种常用方式:

1、在执行命令的时候加上--v=9参数,可以列出命令执行的详情。如:kubectl apply -f xx.yaml --v=9

2、查看事件日志:kubectl describe type name,如查看Pod abc的事件日志:kubectl describe pod abc

3、查看日志:kubectl log,如查看pod1的容器c1的日志:kubectl logs pod1 -c c1 -p

有了日志才能根据日志信息定位具体哪些地方错了,才能够根据定位到的错误去调整yaml配置,以达到正常运行的目的。

3 小结

学习一个新知识,最快的方式就是先上手实践。新手安装Kubernetes环境比较耗费时间,在Windows上建一个Kubernetes学习环境,比较简单的方式是利用Docker Desktop自带的Kubernetes,利用这个环境可以快速进入上手实践环节,等对Kubernetes熟悉到一定程度后,带着一定的背景知识补充学习如何搭建可用于生产的Kubernetes环境会更容易一些。这个方式要注意的是Windows需要带有WSL环境和配备一个特殊网络。如果这个方式还是磕磕碰碰的,则推荐直接使用Linux的环境来上手实践。

http://www.dtcms.com/a/511901.html

相关文章:

  • MySQL数据库管理、DDL、DQL、DML、DCL等总结
  • Telink BLE SDK软件架构
  • 计算机毕设java医院挂号系统 基于Java的医院智能挂号与信息管理系统 Java医院挂号及医疗信息综合平台
  • 上海市500强企业名单单页面优化
  • 【0443】signalfd + epoll 完成事件监听+指定信号处理(演示demo)
  • 湛江有没有做网站的算卦网站哪里可以做
  • 布局具身智能时代(上):深兰科技“具身视觉导航大脑”技术的商业化探索
  • test002
  • RTPENGINE redis 测试
  • 在Ubuntu中安装Docker
  • 佛山市专注网站建设平台网站制作二级网页怎么做
  • 百度收录情况查询南通seo公司网站
  • 【MySQL】慢查寻的发现和解决优化(思维导图版)
  • gbase8s之.net8连接8s之mysql模式(windows)demo
  • 【AI】大模型之深度估计
  • 7.1 EXTI工作原理
  • LazyLLM教程 | 第11讲:性能优化指南:从冷启动到响应加速你的RAG
  • windows后渗透中常用的信息收集命令
  • 初始化node项目express,项目结构介绍
  • Optuna - 自动调参利器python实例
  • 新网站做优化要准备什么合肥网站建设哪个公司做得比较好
  • 提供服务好的网站制作网站怎么做会员系统
  • 绍兴网站建设推广宁夏建设管理局网站
  • 【面向小白】git rebase全面总结,什么时候用rebase
  • Kubernates的部署(从安装到实践)
  • C++ 11
  • (一)Flutter 插件项目demo预览图
  • 两学一做 答题 网站好看到让人久久不忘的电影
  • iOS混淆实战:多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|Ipa Guard 实战)
  • 完整网站开发视频教程wordpress网页图片加载很慢