作者简介

Chris Tozzi,曾担任记者和Linux管理员。对开源技术、敏捷基础架构以及网络问题兴趣浓厚。目前担任高级内容编辑,并且是Fixate IO的DevOps分析师。

原文链接:

https://searchitoperations.techtarget.com/answer/Evaluate-3-ways-to-run-Kubernetes-locally

Kubernetes的主要目的是通过复杂的负载均衡和资源分配功能跨服务器集群托管应用程序。即使某些服务器出现故障,也可以确保应用程序平稳运行。因此在生产部署中,必须为Kubernetes配置多个服务器。

但是,在某些情况下,IT管理员或开发人员可能希望在PC或笔记本电脑上本地运行Kubernetes。因为本地Kubernetes环境使开发人员能够快速测试新的应用程序代码,而不必先将其上传到生产集群。对于初学者来说,本地Kubernetes也是一种很好的方式来学习容器编排系统,而无需承受大规模、多服务器部署的复杂性和成本。

以下是在本地运行Kubernetes的三种方法,所有这些方法都可以在Windows、Linux或macOS的PC或笔记本电脑上运行。

1、 Minikube

Minikube是Kubernetes的一个版本,专为本地部署而设计。Minikube由Kubernetes开源社区开发,使用VM来创建本地单节点Kubernetes安装。

Minikube的安装非常简单,因为Windows、Linux和macOS安装程序会自动执行大部分流程,包括VM设置。但是,请先确保安装了诸如Hyper-V、VirtualBox或KVM等VM平台。

需要先下载最新的Minikube稳定版,然后运行 minikube start。以下示例是在MacOS上启动Minikube:



使用默认的 HyperKit在MacOS上运行Minikube

在启动期间,kubeconfig文件(默认情况下是~/.kube/config)正在更新,名为minikube的新上下文正在被创建(之后将其设置为默认上下文)。Minkube设置完成之后,使用标准Kubernetes命令行工具kubectl即可与集群进行交互。



正在获取minikube的节点

Minikube的主要局限性在于本地集群只能包含一个节点,因此对于生产级别的多节点Kubernetes集群来说,很难在本地进行模拟测试。

2、 MicroK8s

MicroK8s是由Canonical开发的Kubernetes发行版,其突出特点是部署快速简单,对于本地运行Kubernetes来说,十分方便。

在支持snap packages的任何Linux发行版上,MicroK8s的安装都很简单。Snap packages是由Canonical创建的一个应用程序的打包框架,主要用于Ubuntu(该公司的Linux发行版)。在Windows和macOS上安装MicroK8s也是很简单的,因为这些系统的MicroK8s安装程序会创建基于Ubuntu的VM,然后使用snap packages在其上安装MicroK8s。

与Minikube不同,IT管理员或开发人员可以使用MicroK8s创建多节点集群。如果MicroK8s在Linux上运行,甚至不需要VM。在Windows和macOS上,MicroK8s使用名为Multipass的VM框架为Kubernetes集群创建VM。

# Create a new Ubuntu VM
$ multipass launch --name microk8s --mem 4G
# Install microk8s in the VM through snap
$ multipass exec microk8s -- sudo snap install microk8s --classic

然后我们在一个本地文件中复制集群配置文件:

$ multipass exec microk8s -- sudo microk8s.config > microk8s.yaml

请注意:MicroK8s带有几个二进制文件,其中包括:

  • microk8s.config:提供kubectl配置文件以供外界使用

  • microk8s.kubectl:自己的kubectl版本

最后,我们设置KUBECONFIG环境变量来定义由本地kubectl使用的上下文:

$ export KUBECONFIG=$PWD/microk8s.yaml

现在,我们已经准备就绪,可以使用新的MicroK8s单节点集群。

$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
microk8s Ready <none> 4m48s v1.16.3

MicroK8s的最大缺点可能是很难在不支持snap packages的Linux发行版上安装。

3、 K3s

K3s是由业界应用最为广泛的Kubernetes管理平台创建者Rancher Labs开发的轻量级Kubernetes发行版,通过了CNCF一致性认证。它是为生产环境设计的,主要用于部署在资源受限的边缘计算场景中,例如IoT传感器。

但是,K3s也可以在本地运行以进行Kubernetes测试或开发。为此,请首先使用VMware、VirtualBox或KVM等平台在本地系统上至少创建两个VM。K3s不会为你创建VM,因此你需要手动执行此操作。

然后,在一个VM上安装K3s server,在另一个VM上安装K3s agent。这将在本地设备上创建一个微型Kubernetes集群。详细的安装步骤可以参考以下文章:

只需5分钟!即可在mac上运行k3s

研发侧利器!k3d+k3s,轻松管理本地k3s集群!

与MicroK8s和Minikube相比,K3s需要更多的手动工作来进行设置和配置。但是,由于K3s是为全面生产而设计的,因此在PC或笔记本电脑上,它是与生产级服务器最接近的选项。

最新文章

  1. 在Ubuntu下搭建ASP.NET 5开发环境
  2. 用户管理 之 Linux 系统中的超级权限的控制
  3. cookie 换肤
  4. zero cycles - 1 to 30 cycles - tens of millions of cycles
  5. UINavigationController详解二(转)页面切换和SegmentedController
  6. hdu 2053 Switch Game 水题一枚,鉴定完毕
  7. 30天轻松掌握JavaWeb_使用beanutils
  8. 浏览器页面区域大小的js获取方法
  9. _CrtMemBlockHeader
  10. php使用mysql扩展库链接mysql数据库(查询)
  11. &lt;Mastering KVM Virtualization&gt;:第一章 了解Linux虚拟化
  12. windows server 2008 R2服务器安装IIS并添加网站
  13. 用DirectDraw封装的位图动画类
  14. 一个简单小技巧实现手机访问.html文件网页效果
  15. type__列表
  16. W25Q128BV W25Q128FV W25Q128JV 什么区别?
  17. 109. Magic of David Copperfield II 构造 难度:2
  18. sql 时期格式整理
  19. ngx_lua实现登录逻辑
  20. 安装Maven后使用cmd 执行 mvn -version命令 报错JAVA_HOME should point to a JDK not a JRE

热门文章

  1. nodejs一些比较实用的命令
  2. 常见的Web源码泄漏漏洞及其利用
  3. Category、load、initialize 源码讲解
  4. HTML+CSS教程(一)简介及其基本标签的使用方法
  5. Java中的方法是什么以及方法的书写格式
  6. 分享一个404页面(猴子动态SVG图)
  7. liunx常用知识基本命令大全
  8. 微信小程序 POST传值跳坑
  9. 打印js对象内容
  10. 2019-2020-1 20199329《Linux内核原理与分析》第十三周作业