Minikube - Kubernetes本地实验环境

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 为了方便大家本地开发和体验Kubernetes,社区提供了可以在本机部署的Minikube。本文介绍利用阿里云的镜像地址在Windows/Mac/Linux上来部署和配置Minikube
+关注继续查看

minikube.jpg

为了方便大家开发和体验Kubernetes,社区提供了可以在本地部署的开发环境 Minikube。由于网络访问原因,很多朋友无法直接使用minikube进行实验。在v1.24.0的官方 Minikube 中,已经合并了由阿里云团队支持的方案,可以帮助大家利用阿里云的服务来获取所需Docker镜像,二进制文件和配置,也可以完美支持 Minikube 丰富的 addon 组件!

注:

  • 本文已更新到 Minikube v1.24.0/Kubernetes v1.22+
  • 如需更新minikube,需要更新 minikube 安装包

    • minikube delete 删除现有虚机,删除 ~/.minikube 目录缓存的文件
    • 重新创建 minikube 环境
  • Docker Desktop 也为Mac/Windows用户提供了Kubernetes开发环境的支持 https://yq.aliyun.com/articles/672675 ,大家也可以试用

配置

先决条件

安装 kubectl

Minikube在不同操作系统上支持不同的驱动

注:

  • 由于minikube复用了docker-machine,在其软件包中已经支持了相应的VirtualBox, VMware Fusion驱动
  • VT-x/AMD-v 虚拟化必须在 BIOS 中开启
  • 在Windows环境下,如果开启了Hyper-V,不支持VirtualBox方式

安装Minikube

您可以参考 https://minikube.sigs.k8s.io/docs/start/ 安装配置

注:有问题和需求请到 Github 提 issue,并 @denverdino

启动

如下命令将自动使用阿里云服务来支持minikube的环境配置

minikube start --image-mirror-country='cn'

minikube 提供了非常多的配置参数,

常用配置参数如下

  • --driver=*** 从1.5.0版本开始,Minikube缺省使用系统优选的驱动来创建Kubernetes本地环境,比如您已经安装过Docker环境,minikube 将使用 docker 驱动
  • --cpus=2: 为minikube虚拟机分配CPU核数
  • --memory=2048mb: 为minikube虚拟机分配内存数
  • --registry-mirror=*** 为了提升拉取Docker Hub镜像的稳定性,可以为 Docker daemon 配置镜像加速,参考阿里云镜像服务
  • --kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本

比如, 创建 minikube 环境并且调整默认资源配置

minikube start --image-mirror-country='cn' --cpus=4 --memory=4096mb

更多配置参数请参考 minikube help start

打开Kubernetes控制台

minikube dashboard

image.png

对于使用Hyper-V环境的用户,首先应该打开Hyper-V管理器创建一个外部虚拟交换机,

create

hyper_v

之后,我们可以用如下命令来创建基于Hyper-V的Kubernetes测试环境

.\minikube.exe start --image-mirror-country cn \
    --registry-mirror=https://xxxxxx.mirror.aliyuncs.com \
    --vm-driver="hyperv" \
    --hyperv-virtual-switch="MinikubeSwitch" \
    --memory=4096 

注:需要管理员权限来创建Hyper-V虚拟机

使用Minikube

用户使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。一旦Minikube虚拟机启动,用户就可以使用熟悉的Kubectl CLI在Kubernetes集群上执行操作。

Minikube 也提供了丰富的 Addon 组件

$ minikube addons list
|-----------------------------|----------|--------------|-----------------------|
|         ADDON NAME          | PROFILE  |    STATUS    |      MAINTAINER       |
|-----------------------------|----------|--------------|-----------------------|
| ambassador                  | minikube | disabled     | unknown (third-party) |
| auto-pause                  | minikube | disabled     | google                |
| csi-hostpath-driver         | minikube | disabled     | kubernetes            |
| dashboard                   | minikube | disabled     | kubernetes            |
| default-storageclass        | minikube | enabled ✅   | kubernetes            |
| efk                         | minikube | disabled     | unknown (third-party) |
| freshpod                    | minikube | disabled     | google                |
| gcp-auth                    | minikube | disabled     | google                |
| gvisor                      | minikube | disabled     | google                |
| helm-tiller                 | minikube | disabled     | unknown (third-party) |
| ingress                     | minikube | disabled     | unknown (third-party) |
| ingress-dns                 | minikube | disabled     | unknown (third-party) |
| istio                       | minikube | disabled     | unknown (third-party) |
| istio-provisioner           | minikube | disabled     | unknown (third-party) |
| kubevirt                    | minikube | disabled     | unknown (third-party) |
| logviewer                   | minikube | disabled     | google                |
| metallb                     | minikube | disabled     | unknown (third-party) |
| metrics-server              | minikube | disabled     | kubernetes            |
| nvidia-driver-installer     | minikube | disabled     | google                |
| nvidia-gpu-device-plugin    | minikube | disabled     | unknown (third-party) |
| olm                         | minikube | disabled     | unknown (third-party) |
| pod-security-policy         | minikube | disabled     | unknown (third-party) |
| portainer                   | minikube | disabled     | portainer.io          |
| registry                    | minikube | disabled     | google                |
| registry-aliases            | minikube | disabled     | unknown (third-party) |
| registry-creds              | minikube | disabled     | unknown (third-party) |
| storage-provisioner         | minikube | enabled ✅   | kubernetes            |
| storage-provisioner-gluster | minikube | disabled     | unknown (third-party) |
| volumesnapshots             | minikube | disabled     | kubernetes            |
|-----------------------------|----------|--------------|-----------------------|

通过 minikube 命令行,可以轻松开启 Addon 组件,所有组件镜像也会正确解析到阿里云的镜像仓库URL

$ minikube addons enable ingress

    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.0.4
    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
🔎  Verifying ingress addon...
🌟  启动 'ingress' 插件

$ minikube addons enable ingress-dns

    ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-ingress-dns:0.0.2
🌟  启动 'ingress-dns' 插件

大家可以参考 https://minikube.sigs.k8s.io/docs/handbook/addons/ingress-dns/ 来学习使用 Ingress。

更多关于 Minikube 的使用信息可以参考 https://minikube.sigs.k8s.io/

好了,开始探索Kubernetes的世界吧!:-)

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
21天前
|
Kubernetes 应用服务中间件 nginx
解释一下Kubernetes Minikube是什么,以及如何在本地运行一个Minikube集群
步骤1:准备环境 在开始之前,您需要确保本地环境已经具备以下几个关键的工具和组件:
|
5月前
|
Kubernetes 负载均衡 Linux
【k8s 系列】k8s 学习六,minikube 试炼
今天我们先来尝试使用一下 minikube ,可以进入到 kubernetes.io/zh/docs/tut… 页面上直接感受,或者通过如下指令,将 minikube 放入我们的服务器上面进行使用
119 0
|
8月前
|
Kubernetes Linux Shell
minikube安装kubernetes以及start启动报错解决办法:Unable to find image ‘gcr.io/k8s-minikube/kicbase
使用minikubu安装kuburnetes集群,所遇到的问题,以及如何设置。
973 0
|
10月前
|
缓存 Kubernetes Linux
基于minikube快速搭建kubernetes单节点环境
本文主要介绍在 Centos7 环境下基于 Minikube 来快速部署 Kubernetes 单节点集群环境,并在浏览器上访问部署在 k8s 上的 dashboard 服务。
676 2
基于minikube快速搭建kubernetes单节点环境
|
11月前
|
Kubernetes Cloud Native Linux
【云原生|K8s系列第2篇】:使用MiniKube创建第一个K8s集群
本文是K8s系列第二篇,前面已经写了许多篇关于云原生的系列专栏文章,感兴趣的同学可以通过任意门:云原生专栏 进行访问。
【云原生|K8s系列第2篇】:使用MiniKube创建第一个K8s集群
|
11月前
|
资源调度 Kubernetes 负载均衡
玩转Kubernetes—使用minikube操作集群(下)
玩转Kubernetes—使用minikube操作集群
|
11月前
|
存储 Kubernetes 调度
玩转Kubernetes—使用minikube操作集群(上)
玩转Kubernetes—使用minikube操作集群
|
12月前
|
Kubernetes jenkins Linux
Jenkins在CentOS和k8s(minikube)上的部署记录
Jenkins在CentOS和k8s(minikube)上的部署记录
556 1
Jenkins在CentOS和k8s(minikube)上的部署记录
|
12月前
|
Kubernetes Cloud Native Ubuntu
Minikube v1.25.2 在 Centos 7.9 部署 Kubernetes v1.23.8(2)
Minikube v1.25.2 在 Centos 7.9 部署 Kubernetes v1.23.8(2)
Minikube v1.25.2 在 Centos 7.9 部署 Kubernetes v1.23.8(2)
|
12月前
|
Kubernetes Linux API
Minikube v1.25.2 在 Centos 7.9 部署 Kubernetes v1.23.8(1)
Minikube v1.25.2 在 Centos 7.9 部署 Kubernetes v1.23.8(1)
相关产品
容器服务Kubernetes版
推荐文章
更多