本文主要是介绍第三章:使用 Minikube 创建集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用 Minikube 创建集群
目标
- 了解 Kubernetes 集群。
- 了解 Minikube。
- 在你的电脑上开启一个 Kubernetes 集群。
Kubernetes 集群
Kubernetes 集群是由多个计算节点(Nodes)组成的集合,每个节点都运行着 Kubernetes 控制平面的一部分,以及容器化应用程序的工作负载。一个 Kubernetes 集群包含两种类型的资源:
-
控制面调度整个集群
控制面协调集群中的所有活动,例如调度应用、维护应用的所需状态、应用扩容以及推出新的更新。
-
节点负责运行应用
节点是一个虚拟机或者物理机,它在 Kubernetes 集群中充当工作机器的角色。 每个节点都有 Kubelet,它管理节点而且是节点与控制面通信的代理。 节点还应该具有用于处理容器操作的工具,例如 Docker 或 rkt。 处理生产级流量的 Kubernetes 集群至少应具有三个节点,因为如果一个节点出现故障其对应的 etcd 成员和控制面实例都会丢失, 并且冗余会受到影响。你可以通过添加更多控制面节点来降低这种风险。
Kubernetes 集群的核心组件:
- Master 节点:
- kube-apiserver: 提供 Kubernetes API,允许用户和管理员与集群进行交互。
- etcd: 一个分布式键值存储数据库,用于保存集群的配置信息和状态。
- kube-scheduler: 负责将新创建的 Pod 分配给集群中的节点。
- kube-controller-manager: 包含多个控制器,用于监控集群的状态并确保它们符合预期的状态。
- 工作节点(Node):
- kubelet: 在节点上负责管理容器的生命周期,包括启动、停止和监视容器。
- kube-proxy: 负责实现 Kubernetes 服务的网络代理和负载均衡。
- 容器运行时(如 Docker、containerd 等): 负责运行容器。
- 网络插件(CNI): 负责为 Pod 和服务创建网络通信的网络插件,如 Calico、Flannel 等。
- 存储插件(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 集群
-
默认启动
minikube start
-
指定 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 集群。
-
指定镜像源
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 创建集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!