Minikube是一种可以轻松在本地运行Kubernetes的工具。Minikube在笔记本电脑的虚拟机(VM)内运行一个单节点Kubernetes集群,以供希望试用Kubernetes或每天使用它开发的用户使用。
Minikube功能
Minikube支持以下Kubernetes功能:
域名解析
节点端口
ConfigMap和秘密
NodePorts
容器运行时:Docker,CRI-O和容器化
启用CNI(容器网络接口)

安装

请参阅安装Minikube。

快速开始

这个简短的演示指导您如何在本地启动,使用和删除Minikube。请按照下面给出的步骤开始和探索Minikube。

1、启动Minikube并创建集群:

minikube start
输出类似于以下内容:

Starting local Kubernetes cluster...
Running pre-create checks...
Creating machine...
Starting local Kubernetes cluster...

2、现在,您可以使用kubectl与您的集群进行交互。有关更多信息,请参见与集群交互。

让我们使用名为echoserve的现有映像创建一个Kubernetes部署,该映像是一个简单的HTTP服务器,并使用--port将该映像公开在端口8080上。

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10

输出类似于以下内容:

deployment.apps/hello-minikube created

3、要访问hello-minikube部署,请将其公开为服务:

kubectl expose deployment hello-minikube --type=NodePort --port=8080

该选项--type=NodePort指定服务的类型。

输出类似于以下内容:

service/hello-minikube exposed

4、该hello-minikube Pod已经启动,但你必须要等到Pod公开服务才能访问它。

检查Pod是否已启动并正在运行:

kubectl get pod

如果输出显示STATUSas ContainerCreating,则仍在创建Pod:

NAME                              READY     STATUS              RESTARTS   AGE
hello-minikube-3383150820-vctvh   0/1       ContainerCreating   0          3s

如果输出显示STATUS为Running,则Pod现在已启动并正在运行:

NAME                              READY     STATUS    RESTARTS   AGE
hello-minikube-3383150820-vctvh   1/1       Running   0          13s

5、获取公开服务的URL,以查看服务详细信息:

minikube service hello-minikube --url

6、要查看本地集群的详细信息,请在浏览器中复制并粘贴作为输出得到的URL。

输出类似于以下内容:

Hostname: hello-minikube-7c77b68cff-8wdzq

Pod Information:
 -no pod information available-

Server values:
 server_version=nginx: 1.13.3 - lua: 10008

Request Information:
 client_address=172.17.0.1
 method=GET
 real path=/
 query=
 request_version=1.1
 request_scheme=http
 request_uri=http://192.168.99.100:8080/

Request Headers:
     accept=*/*
     host=192.168.99.100:30674
     user-agent=curl/7.47.0

Request Body:
     -no body in request-

如果您不再希望运行服务和群集,则可以将其删除。

7、删除hello-minikube服务:

kubectl delete services hello-minikube

输出类似于以下内容:

service "hello-minikube" deleted

8、删除hello-minikube部署:

kubectl delete deployment hello-minikube

输出类似于以下内容:

deployment.extensions "hello-minikube" deleted

9、停止本地Minikube集群:

minikube stop

输出类似于以下内容:

Stopping "minikube"...
"minikube" stopped.

10、删除本地Minikube集群:

minikube delete

输出类似于以下内容:

Deleting "minikube" ...
The "minikube" cluster has been deleted.

管理集群

启动集群
该minikube start命令可用于启动集群。该命令创建并配置运行单节点Kubernetes集群的虚拟机。此命令还将配置您的kubectl安装程序以与此集群通信。

注意:
如果您使用Web代理,则需要将此信息传递给minikube start命令:

https_proxy=<my proxy> minikube start --docker-env http_proxy=<my proxy> --docker-env https_proxy=<my proxy> --docker-env no_proxy=192.168.99.0/24

不幸的是,仅设置环境变量是行不通的。
Minikube还会创建一个“ minikube”上下文,并将其设置为kubectl中的默认值。要切换回此上下文,请运行以下命令:kubectl config use-context minikube。

指定Kubernetes版本
您可以通过将--kubernetes-version字符串添加到minikube start命令来指定供Minikube使用的Kubernetes版本。例如,要运行版本v1.18.0,您将运行以下命令:

minikube start --kubernetes-version v1.18.0

指定VM驱动程序
您可以通过将--driver=<enter_driver_name>标志添加到来更改VM驱动程序minikube start。例如,命令:

minikube start --driver=<driver_name>

Minikube支持以下驱动程序:

注意:有关受支持的驱动程序以及如何安装插件的详细信息,请参阅驱动程序。
docker
virtualbox
podman)
vmwarefusion
kvm2
hyperkit)
hyperv 请注意,以下IP是动态的,可以更改。可以使用检索它minikube ip。
vmware(VMware统一驱动程序)
parallels
none(在主机上而不是在虚拟机中运行Kubernetes组件。您需要运行Linux并具有 码头工人 已安装。)
注意:如果使用none驱动程序,则某些Kubernetes组件将作为特权容器运行,这些容器在Minikube环境之外具有副作用。这些副作用意味着none不建议将该驱动程序用于个人工作站。

在备用容器运行时上启动集群
您可以在以下docker容器运行时中启动Minikube:
要将容器化用作容器运行时,请运行:

minikube start \
    --network-plugin=cni \
    --enable-default-cni \
    --container-runtime=containerd \
    --bootstrapper=kubeadm

或者,您可以使用扩展版本:

minikube start \
    --network-plugin=cni \
    --enable-default-cni \
    --extra-config=kubelet.container-runtime=remote \
    --extra-config=kubelet.container-runtime-endpoint=unix:///run/containerd/containerd.sock \
    --extra-config=kubelet.image-service-endpoint=unix:///run/containerd/containerd.sock \
    --bootstrapper=kubeadm