迷你库:在本地轻松运行Kubernetes

编者注:这是 系列深入文章 Kubernetes 1.3的新功能 

尽管Kubernetes是当今管理容器化应用程序的最佳工具之一,并且已经投入生产一年以上,但Kubernetes却缺少一个出色的本地开发平台。

在过去的几个月中,来自Kubernetes社区的我们中的一些人一直在努力解决此问题, 迷你库 的GitHub 上的存储库。我们的目标是构建一个易于使用的高保真Kubernetes发行版,该发行版可以在Mac,Linux和Windows工作站以及笔记本电脑上通过单个命令在本地运行。

感谢社区成员的大量帮助,我们很荣幸地宣布Minikube正式发布。此版本附带对 Kubernetes 1.3,可简化与本地群集交互的新命令以及xhyve(在macOS上)和KVM(在Linux上)的实验驱动程序。

使用迷你库

迷你库作为独立的Go二进制文件提供,因此安装它就像下载Minikube并将其放在您的路径上一样简单:

迷你库当前要求您安装VirtualBox,可以下载  这里 .

_(这是在Mac上,对于Linux用“ minikube-linux-amd64”替代“ minikube-darwin-amd64”)卷发-Lo minikube //storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && chmod + x minikube && sudo mv minikube / usr / local / bin /

To start a Kubernetes cluster in 迷你库, use the minikube start command:

$ minikube start

Starting local Kubernetes cluster...

Kubernetes is available at //192.168.99.100:443

Kubectl is now configured to use the cluster

At this point, you have a running single-node Kubernetes cluster on your laptop! 迷你库 also configures kubectl for you, so you're also ready to run containers with no changes.

迷你库 creates a Host-Only network interface that routes to your node. To interact with running pods or services, you should send traffic over this address. To find out this address, you can use the minikube ip command:

迷你库 also comes with the Kubernetes Dashboard. To open this up in your browser, you can use the built-in minikube dashboard command:

In general, 迷你库 supports everything you would expect from a Kubernetes cluster. You can use kubectl exec to get a bash shell inside a pod in your cluster. You can use the kubectl port-forward and kubectl proxy commands to forward traffic from localhost to a pod or the API server.

由于Minikube在本地而不是在云提供程序上运行,因此某些特定于提供程序的特定功能(例如LoadBalancers和PersistentVolumes)将无法立即使用。但是,您可以使用NodePort LoadBalancers和HostPath PersistentVolumes。

建筑

迷你库建立在Docker的基础之上 lib机器,并利用驱动程序模型来创建,管理本地运行的虚拟机并与之交互。

红点差 足以捐出他们的 本地库 Minikube存储库的代码库,我们用它来启动VM中的单进程Kubernetes集群。 Localkube将etcd,DNS,Kubelet和所有Kubernetes主组件捆绑到一个Go二进制文件中,并通过单独的goroutine运行它们。

即将推出的功能

到目前为止,Minikube的工作很有趣,我们一直在寻求改进Minikube以使Kubernetes的开发体验更好。如果您对功能有任何想法,请随时在 问题追踪器

以下是我们希望很快添加到Minikube的一些内容的列表:

  • 对macOS和Windows的本机管理程序支持
  • 我们计划删除对Virtualbox的依赖,并与macOS和Windows中包含的本机虚拟机管理程序集成(分别为Hypervisor.framework和Hyper-v)。
  • 改进了对Kubernetes功能的支持
  • 我们正计划增加支持的Kubernetes功能的范围,以包括Ingress之类的功能。
  • Kubernetes的可配置版本
  • 今天,Minikube仅支持Kubernetes 1.3。我们计划增加对用户可配置版本的Kubernetes的支持,以使其更容易匹配笔记本电脑上生产环境中运行的内容。

社区

我们希望听到有关Minikube的反馈。要加入社区:

请尝试Minikube,让我们知道如何进行!

-Dan Lorenc,Google软件工程师