在本地运行Kubernetes的3种主流方式
作者简介
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集群。详细的安装步骤可以参考以下文章:
与MicroK8s和Minikube相比,K3s需要更多的手动工作来进行设置和配置。但是,由于K3s是为全面生产而设计的,因此在PC或笔记本电脑上,它是与生产级服务器最接近的选项。
原文地址:https://www.cnblogs.com/k3s2019/p/12887080.html
- Elasticsearch聚合 之 Terms
- Elasticsearch聚合初探——metric篇
- AngularJS API之$injector ---- 依赖注入
- AngularJS API之extend扩展对象
- AngularJS API之equal比较对象
- Elasticsearch之_default_—— 为索引添加默认映射
- Elasticsearch 动态映射——自动检测
- Elaticsearch REST API常用技巧
- C++拷贝构造函数
- 记录安装oracle的那些事(一)之oracle我很大
- Elasticsearch 连接查询
- 小程序加戏成功!变身游戏成新版微信最大主角,用户玩得不亦乐乎
- 堆实例
- 大数加法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android自定义View实现圆形切图效果
- Android仿iOS侧滑退出当前界面功能
- android仿支付宝密码输入框效果
- TextInputLayout输入框控件的悬浮标签
- android使用SwipeRefreshLayout实现ListView下拉刷新上拉加载
- Android自定义ScrollView使用自定义监听
- Android开发实现拨打电话与发送信息的方法分析
- Android 3.0引入的异步加载机制Loader
- 自定义注解1-实现spel表达式
- 自定义注解2-动态修改注解的属性值
- 自定义注解3-组合注解
- swagger增加接口版本管理
- 数据安全02-Base64 算法原理
- leetcode之整理字符串
- 使用Docker镜像