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