当前位置:首页 > 科技  > 软件

一文搞懂 Kubernetes 编排工具 Minikube

来源: 责编: 时间:2023-09-18 21:42:21 422观看
导读 Hello folks,我是 Luga,今天我们来聊一下云原生生态核心技术之 Kubernetes 编排工具 —— Minikube。为什么需要 Minikube 工具 ?随着容器技术的迅猛发展和广泛应用,Kubernetes 在企业中扮演着重要的角色。通常情况下,我

Hello folks,我是 Luga,今天我们来聊一下云原生生态核心技术之 Kubernetes 编排工具 —— Minikube。GzL28资讯网——每日最新资讯28at.com

为什么需要 Minikube 工具 ?

随着容器技术的迅猛发展和广泛应用,Kubernetes 在企业中扮演着重要的角色。通常情况下,我们将 Kubernetes 描述为“将 Linux 容器集群作为单个系统进行管理,以加速开发并简化维护”。对于企业应用服务的容器化改造而言,学习和使用 Kubernetes 已经成为不可避免的一部分。GzL28资讯网——每日最新资讯28at.com

然而,对于刚接触这个体系的 DevOps 人员来说,在环境中完整部署一整套多节点的 Kubernetes 集群确实具有一定的难度。这种部署涉及到复杂的配置、网络设置和资源管理等方面,需要具备深入的理解和相关经验。GzL28资讯网——每日最新资讯28at.com

GzL28资讯网——每日最新资讯28at.com

总的来说,Kubernetes 和 Minikube 为容器化应用开发和部署提供了强大的支持。Kubernetes 作为一个分布式系统的编排工具,可以管理和调度容器化的应用程序,而 Minikube 则提供了一个简单实用的方式,在本地机器上搭建和管理 Kubernetes 集群。这些工具的使用使得开发人员能够更加高效地进行应用程序开发、测试和部署,加速了应用交付的速度和质量。GzL28资讯网——每日最新资讯28at.com

认识不一样的 Minikube 技术堆栈

基于 Minikube 的相关特性,我们从操作系统(OS)、CPU 架构、程序管理技术(Hypervisor tech)、容器运行时(CRI)以及容器网络接口插件(CNIs)等多方位角度简要描绘 Minikube 所支持的技术运行栈形态,具体如下图所示:GzL28资讯网——每日最新资讯28at.com

GzL28资讯网——每日最新资讯28at.com

1、操作系统(OS):

Minikube 支持在多种操作系统上运行,包括但不限于以下几种:GzL28资讯网——每日最新资讯28at.com

  • macOS:Minikube 可以在 macOS 上运行,提供了方便的本地开发和测试环境。
  • Linux:Minikube 支持在不同的 Linux 发行版上运行,使开发人员能够在本地机器上搭建 Kubernetes 集群。
  • Windows:Minikube 可以在 Windows 平台上运行,为 Windows 用户提供了本地化的 Kubernetes 开发环境。

2、CPU架构:

Minikube 能够适应不同的 CPU 架构,包括但不限于以下几种:GzL28资讯网——每日最新资讯28at.com

  • x86 架构:Minikube 支持 x86 架构的处理器,这是目前最常见的桌面和服务器处理器架构。
  • ARM 架构:Minikube 还支持 ARM 架构,这是一种常见于嵌入式设备和移动设备的处理器架构。

3、程序管理技术(Hypervisor tech):

Minikube 利用虚拟化管理器来创建和管理虚拟机,以模拟多节点的 Kubernetes 集群。它支持多种虚拟化管理器技术,包括但不限于以下几种:GzL28资讯网——每日最新资讯28at.com

  • VirtualBox:Minikube 可以使用 VirtualBox 作为虚拟化管理器,在本地机器上创建和管理虚拟机。
  • HyperV:对于 Windows 平台,Minikube 支持使用 HyperV 作为虚拟化管理器,提供了本地化的Kubernetes环境。
  • KVM2:在 Linux 平台上,Minikube 可以使用 KVM2 作为虚拟化管理器,以实现本地 Kubernetes 集群的搭建和管理。

4、容器运行时(CRI):

Minikube 支持多种容器运行时,以在本地机器上运行和管理容器化的应用程序。以下是一些 Minikube 所支持的常见容器运行时:GzL28资讯网——每日最新资讯28at.com

  • Docker:作为最流行的容器运行时之一,Minikube 支持使用 Docker 来创建和管理容器,使得应用程序可以在本地的Kubernetes集群中以容器的形式运行。
  • containerd:Minikube 还支持使用 containerd 作为容器运行时,containerd 是一个轻量级的容器运行时,为 Kubernetes 提供了容器管理的能力。

5、容器网络接口插件(CNIs):

Minikube 支持多种容器网络接口插件,以实现容器之间的网络通信和连接。以下是一些 Minikube 所支持的常见容器网络接口插件:GzL28资讯网——每日最新资讯28at.com

  • Calico:Minikube 可以集成 Calico 作为容器网络接口插件,提供网络策略和安全性功能。
  • flannel:Minikube 还支持使用 flannel 作为容器网络接口插件,flannel 提供了简单而高效的网络覆盖,使得容器可以相互通信。

Minikube 工具基本部署安装

Minikube 安装部署较为简单,这里,我们以 macOS 平台为例,进行简单介绍,具体如下:GzL28资讯网——每日最新资讯28at.com

[administrator@JavaLangOutOfMemory ~ ]% brew  install minikube
[administrator@JavaLangOutOfMemory ~ ]% minikube start

当然,我们还可以自定义参数进行启动,具体如下所示:GzL28资讯网——每日最新资讯28at.com

[administrator@JavaLangOutOfMemory ~ ]%  minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.x.x.iso                 --registry-mirror=https://registry.docker-cn.com                 --image-mirror-country=cn                 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers                 --vm-driver=none                 --memory=4096

部署完成后,检测相关配置参数等。GzL28资讯网——每日最新资讯28at.com

[administrator@JavaLangOutOfMemory ~ ]% kubectl versionClient Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2", GitCommit:"092fbfbf53427de67cac1e9fa54aaa09a28371d7", GitTreeState:"clean", BuildDate:"2021-06-16T12:52:14Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"darwin/amd64"}Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.7", GitCommit:"132a687512d7fb058d0f5890f07d4121b3f0a2e2", GitTreeState:"clean", BuildDate:"2021-05-12T12:32:49Z", GoVersion:"go1.15.12", Compiler:"gc", Platform:"linux/amd64"}
[administrator@JavaLangOutOfMemory ~ ]% kubectl get node -o wideNAME       STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIMEminikube   Ready    control-plane,master   15h   v1.20.7   192.168.49.2   <none>        Ubuntu 20.04.2 LTS   5.10.25-linuxkit   docker://20.10.7[administrator@JavaLangOutOfMemory ~ ]% kubectl get pod -ANAMESPACE     NAME                               READY   STATUS    RESTARTS   AGEkube-system   coredns-74ff55c5b-p6dlz            1/1     Running   0          15hkube-system   etcd-minikube                      1/1     Running   0          15hkube-system   kube-apiserver-minikube            1/1     Running   0          15hkube-system   kube-controller-manager-minikube   1/1     Running   0          15hkube-system   kube-proxy-dcr72                   1/1     Running   0          15hkube-system   kube-scheduler-minikube            1/1     Running   0          15hkube-system   storage-provisioner                1/1     Running   3          15h 

常见命令行如下所示:GzL28资讯网——每日最新资讯28at.com

[administrator@JavaLangOutOfMemory ~ ] % minikube --helpminikube provisions and manages local Kubernetes clusters optimized for development workflows.Basic Commands:  start          Starts a local Kubernetes cluster  status         Gets the status of a local Kubernetes cluster  stop           Stops a running local Kubernetes cluster  delete         Deletes a local Kubernetes cluster  dashboard      Access the Kubernetes dashboard running within the minikube cluster  pause          pause Kubernetes  unpause        unpause KubernetesImages Commands:  docker-env     Configure environment to use minikube's Docker daemon  podman-env     Configure environment to use minikube's Podman service  cache          Add, delete, or push a local image into minikube  image          Manage imagesConfiguration and Management Commands:  addons         Enable or disable a minikube addon  config         Modify persistent configuration values  profile        Get or list the current profiles (clusters)  update-context Update kubeconfig in case of an IP or port changeNetworking and Connectivity Commands:  service        Returns a URL to connect to a service  tunnel         Connect to LoadBalancer servicesAdvanced Commands:  mount          Mounts the specified directory into minikube  ssh            Log into the minikube environment (for debugging)  kubectl        Run a kubectl binary matching the cluster version  node           Add, remove, or list additional nodes  cp             Copy the specified file into minikubeTroubleshooting Commands:  ssh-key        Retrieve the ssh identity key path of the specified node  ssh-host       Retrieve the ssh host key of the specified node  ip             Retrieves the IP address of the specified node  logs           Returns logs to debug a local Kubernetes cluster  update-check   Print current and latest version number  version        Print the version of minikube  options        Show a list of global command-line options (applies to all commands).Other Commands:  completion     Generate command completion for a shellUse "minikube <command> --help" for more information about a given command.

Minikube 工具架构原理解析

Minikube 基于本地虚拟机环境部署 Kubernetes 集群,其基本架构参考示意图,如下图所示:GzL28资讯网——每日最新资讯28at.com

GzL28资讯网——每日最新资讯28at.com

具体实现原理涉及如下:GzL28资讯网——每日最新资讯28at.com

(1) 下载 .iso 文件以能够使得本地环境处于可用状态GzL28资讯网——每日最新资讯28at.com

在 Minikube 启动过程中,首先需要下载一个 .iso 文件,以确保本地环境处于可用状态。这个 .iso 文件通常包含一个 Linux 发行版(通常是 boot2docker )和所需的工具和依赖项。GzL28资讯网——每日最新资讯28at.com

(2) 从下载的 .iso 文件中提取 boot2docker.iso 镜像文件GzL28资讯网——每日最新资讯28at.com

从下载的 .iso 文件中提取 boot2docker.is o镜像文件。这个镜像是一个轻量级的 Linux 操作系统,专门用于在 Minikube 中运行。GzL28资讯网——每日最新资讯28at.com

(3) 创建用于 SSH 目的的动态证书GzL28资讯网——每日最新资讯28at.com

在 Minikube 中,为了能够通过 SSH 与虚拟机进行通信,需要创建一对动态证书。这些证书用于安全地建立 SSH 连接,以便管理和操作虚拟机。GzL28资讯网——每日最新资讯28at.com

(4) 使用指定的配置创建 VirtualBox VM 文件GzL28资讯网——每日最新资讯28at.com

根据指定的配置信息,使用 VirtualBox 虚拟化软件创建一个虚拟机(VM)文件。这个虚拟机将用作 Minikube 集群的节点。GzL28资讯网——每日最新资讯28at.com

(5) 设置存储以挂载 boot2docker.iso 文件GzL28资讯网——每日最新资讯28at.com

在虚拟机中设置存储配置,以便将 boot2docker.iso 文件挂载到虚拟机的文件系统中。这样,虚拟机就能够访问其中的文件并引导启动。GzL28资讯网——每日最新资讯28at.com

(6) 设置网络相关配置(IP、DHCP 等)以及在 VM 内设置 SSH 等GzL28资讯网——每日最新资讯28at.com

配置虚拟机的网络相关设置,例如为虚拟机分配 IP 地址、配置 DHCP 等。此外,还在虚拟机内部设置 SSH,以便允许通过 SSH 与虚拟机进行远程连接和管理。GzL28资讯网——每日最新资讯28at.com

(7) 启动虚拟机GzL28资讯网——每日最新资讯28at.com

现在,启动虚拟机并等待它完成启动过程。一旦虚拟机启动成功,它就成为 Minikube 集群中的一个节点。GzL28资讯网——每日最新资讯28at.com

(8) 设置 /etc/hostname、 /etc/hosts 以及设置 systemd 相关文件以使得 Docker 容器引擎能够正常启动GzL28资讯网——每日最新资讯28at.com

在虚拟机中进行一些配置操作,例如设置主机名(/etc/hostname)、设置主机解析(/etc/hosts)以及配置systemd相关文件。这些操作有助于确保Docker容器引擎能够在虚拟机中正常启动和工作。GzL28资讯网——每日最新资讯28at.com

(9) 准备 Kubernetes 和 Docker 等相关基础环境配置GzL28资讯网——每日最新资讯28at.com

在虚拟机中准备 Kubernetes 和 Docker 等相关基础环境配置。这可能涉及安装和配置所需的软件包、设置环境变量、创建相关目录等。GzL28资讯网——每日最新资讯28at.com

(10) 下载所有相关的 Kubernetes 文件 - kubelet、kubeadm 等GzL28资讯网——每日最新资讯28at.com

在虚拟机中下载所有相关的 Kubernetes 文件,包括 kubelet、kubeadm 等工具。这些工具用于管理和操作 Kubernetes 集群。GzL28资讯网——每日最新资讯28at.com

(11) 为 Kubernetes 所需的不同包拉取 Docker 镜像并启动不同的服务,例如,分布式存储系统 Etcd、调度程序 Scheduler、控制器 Controller Manager 以及 Api ServerGzL28资讯网——每日最新资讯28at.com

在虚拟机中为 Kubernetes 所需的不同组件和服务拉取 Docker 镜像,并启动这些服务。这可能涉及拉取 Etcd 镜像(用于分布式存储系统)、启动调度程序、控制器管理器和API服务器等关键组件。GzL28资讯网——每日最新资讯28at.com

通过以上步骤,Minikube 成功完成了组件的启动流程,并为用户提供了一个本地的、可用于开发和测试的 Kubernetes 集群环境。GzL28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-10489-0.html一文搞懂 Kubernetes 编排工具 Minikube

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 企业变革管理能否缓解供应链困境?

下一篇: 得物SRE视角下的蓝绿发布

标签:
  • 热门焦点
  • Redmi Pad评测:红米充满野心的一次尝试

    从Note系列到K系列,从蓝牙耳机到笔记本电脑,红米不知不觉之间也已经形成了自己颇有竞争力的产品体系,在中端和次旗舰市场上甚至要比小米新机的表现来得更好,正所谓“大丈夫生居
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 只需五步,使用start.spring.io快速入门Spring编程

    步骤1打开https://start.spring.io/,按照屏幕截图中的内容创建项目,添加 Spring Web 依赖项,并单击“生成”按钮下载 .zip 文件,为下一步做准备。请在进入步骤2之前进行解压。图
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的&ldquo;在线鉴别&rdquo;,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之&ldquo;想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!&rdquo;曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    按照惯例,苹果将继续在今年9月举办一年一度的秋季新品发布会,有传言称发布会将于9月12日举行,届时全新的iPhone 15系列将正式与大家见面,不出意外的话
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
  • DRAM存储器10月价格下跌,NAND闪存本月价格与上月持平

    10月30日,据韩国媒体消息,自今年年初以来一直在上涨的 DRAM 存储器的交易价格仅在本月就下跌了近 10%,此次是全年首次降价,而NAND 闪存本月价格与上月持平。市
Top