第三章:使用 Minikube 创建集群

2024-04-01 21:36

本文主要是介绍第三章:使用 Minikube 创建集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用 Minikube 创建集群

目标

  • 了解 Kubernetes 集群。
  • 了解 Minikube。
  • 在你的电脑上开启一个 Kubernetes 集群。

Kubernetes 集群

Kubernetes 集群是由多个计算节点(Nodes)组成的集合,每个节点都运行着 Kubernetes 控制平面的一部分,以及容器化应用程序的工作负载。一个 Kubernetes 集群包含两种类型的资源:

  • 控制面调度整个集群

    控制面协调集群中的所有活动,例如调度应用、维护应用的所需状态、应用扩容以及推出新的更新。

  • 节点负责运行应用

    节点是一个虚拟机或者物理机,它在 Kubernetes 集群中充当工作机器的角色。 每个节点都有 Kubelet,它管理节点而且是节点与控制面通信的代理。 节点还应该具有用于处理容器操作的工具,例如 Docker 或 rkt。 处理生产级流量的 Kubernetes 集群至少应具有三个节点,因为如果一个节点出现故障其对应的 etcd 成员和控制面实例都会丢失, 并且冗余会受到影响。你可以通过添加更多控制面节点来降低这种风险。

Kubernetes 集群的核心组件:

  1. Master 节点:
    • kube-apiserver: 提供 Kubernetes API,允许用户和管理员与集群进行交互。
    • etcd: 一个分布式键值存储数据库,用于保存集群的配置信息和状态。
    • kube-scheduler: 负责将新创建的 Pod 分配给集群中的节点。
    • kube-controller-manager: 包含多个控制器,用于监控集群的状态并确保它们符合预期的状态。
  2. 工作节点(Node):
    • kubelet: 在节点上负责管理容器的生命周期,包括启动、停止和监视容器。
    • kube-proxy: 负责实现 Kubernetes 服务的网络代理和负载均衡。
    • 容器运行时(如 Docker、containerd 等): 负责运行容器。
  3. 网络插件(CNI): 负责为 Pod 和服务创建网络通信的网络插件,如 Calico、Flannel 等。
  4. 存储插件(CSI): 提供动态创建和管理持久化存储卷的能力,如 Rook、Ceph 等。

在 Kubernetes 上部署应用时,你告诉控制面启动应用容器。 控制面就编排容器在集群的节点上运行。 **节点使用控制面暴露的 Kubernetes API 与控制面通信。**终端用户也可以使用 Kubernetes API 与集群交互。

Kubernetes 既可以部署在物理机上也可以部署在虚拟机上。你可以使用 Minikube 开始部署 Kubernetes 集群。 Minikube 是一种轻量级的 Kubernetes 实现,可在本地计算机上创建 VM 并部署仅包含一个节点的简单集群。 Minikube 可用于 Linux、macOS 和 Windows 系统。Minikube CLI 提供了用于引导集群工作的多种操作, 包括启动、停止、查看状态和删除。

Minikube 安装

Minikube 是一个用于在本地开发环境中运行 Kubernetes(一个用于自动部署、扩展和管理容器化应用程序的开源容器编排工具)的工具。Minikube 允许开发者在个人计算机上创建一个单节点的 Kubernetes集群,用于测试和开发目的。

通过 Minikube,开发者可以在本地轻松地体验 Kubernetes 的基本功能,而无需设置一个完整的生产级别的多节点集群。Minikube 会在本地虚拟机中启动一个单节点的 Kubernetes 集群,这允许开发者在其个人计算机上创建、管理和测试容器化应用程序,以便更好地理解和熟悉 Kubernetes 的工作原理。

Minikube 支持多种虚拟化平台,如 VirtualBox、Hyper-V 和 KVM,因此用户可以选择适合其系统的虚拟化技术。它还提供了一些方便的命令行工具,用于启动、停止和管理本地 Kubernetes 环境。

需要以下条件才能使用 Minikube

  • 2个或更多的CPU
  • 2GB的可用内存
  • 20GB的可用磁盘空间
  • 互联网连接
  • 容器或虚拟机管理器,例如:Docker、QEMU、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox或VMware Fusion/Workstation.
1、打开终端(命令行界面)
2、使用 curl 命令下载最新的 Minikube 二进制文件

在终端中运行以下命令:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
3、将下载的二进制文件移动到一个可执行路径,例如 /usr/local/bin/

运行以下命令:

sudo install minikube-linux-amd64 /usr/local/bin/minikube

如果提示密码,请输入你的管理员密码。

4、验证 Minikube 是否成功安装

运行以下命令:

minikube version

这应该输出 Minikube 的版本信息,确认安装成功。

5、启动 Minikube 集群
  1. 默认启动

    minikube start   
    
  2. 指定 kubernetes版本启动

    启动指定版本 Kubernetes 的示例命令:

    minikube start --kubernetes-version=<desired_version>
    

    请将 `` 替换为你想要使用的 Kubernetes 版本。例如,如果你想要使用 Kubernetes 版本 1.20.0,你可以运行以下命令:

    sqlCopy codeminikube start --kubernetes-version=v1.20.0 --force --driver=docker 
    

    Minikube 将下载和启动指定版本的 Kubernetes,并为你提供一个本地的单节点 Kubernetes 集群。

  3. 指定镜像源

    minikube start  --force --driver=docker --image-mirror-country='cn'  --image-repository=registry.cn-hangzhou.aliyuncs.com 
    

启动过程如下:

* Centos 7.7.1908 上的 minikube v1.32.0
! 当提供 --force 参数时,minikube 将跳过各种验证,这可能会导致意外行为
* 根据用户配置使用 docker 驱动程序
* The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
* 如果您在VM中运行 minikube,请考虑使用 --driver=none:
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com
* 使用具有 root 权限的 Docker 驱动程序
* 正在集群 minikube 中启动控制平面节点 minikube
* 正在拉取基础镜像 ...
! The image 'registry.cn-hangzhou.aliyuncs.com/coredns/coredns:v1.10.1' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/etcd:3.5.9-0' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/k8s-minikube/storage-provisioner:v5' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/kube-proxy:v1.28.3' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/kube-scheduler:v1.28.3' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/pause:3.9' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/kube-controller-manager:v1.28.3' was not found; unable to add it to cache.
! The image 'registry.cn-hangzhou.aliyuncs.com/kube-apiserver:v1.28.3' was not found; unable to add it to cache.

这将下载所需的镜像并启动本地 Kubernetes 集群。

提示:【VM虚拟机root启动】

这篇关于第三章:使用 Minikube 创建集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868190

相关文章

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

Springboot3 ResponseEntity 完全使用案例

《Springboot3ResponseEntity完全使用案例》ResponseEntity是SpringBoot中控制HTTP响应的核心工具——它能让你精准定义响应状态码、响应头、响应体,相比... 目录Spring Boot 3 ResponseEntity 完全使用教程前置准备1. 项目基础依赖(M

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求