📜  如何使用 minikube 在本地机器上设置 Kubernetes 集群?

📅  最后修改于: 2022-05-13 01:56:30.976000             🧑  作者: Mango

如何使用 minikube 在本地机器上设置 Kubernetes 集群?

在 AWS、Google Cloud 等上创建一个Kubernetes集群可能有点困难,而且要花很多钱。如果你有一台 Windows 机器或 mac,那么使用 Docker Desktop for windows/mac 很容易创建一个多容器集群,并使用Kubernetes来管理集群。

附加条件对Docker和Kubernetes有一定的基础知识。

但是对于基于 Linux 的系统,您必须要么选择昂贵的基于云的解决方案。所以我们可以使用minikube在本地机器上创建自己的集群。它是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。您只需要安装 docker 或任何虚拟机环境。在以下示例中,我们使用了虚拟框。

安装 Minikube:要在 Linux 上安装 minikube,请使用以下命令:

示例:为了测试这一点,我们将使用一个使用 NodeJS、ExpressJS、NextJS 构建的售票 Web 应用程序,并使用 nats-streaming 进行事件传输,使用ingress-nginx进行网络和负载平衡。用于不同服务的不同 docker 映像,并已使用 minikube 在本地使用 minikube 运行集群。

Repo 的 Github 链接:使用https://github.com/afif1400/gittix-micro链接 fork 项目。

注意:安装 docker 或 virtual box 和 minikube 后,我们只需启动 minikube 并使用 skaffold 运行所有容器或不同的微服务。

因此,在您克隆 repo 到根目录后,首先启动 minikube –driver 用于指定环境,您也可以将其更改为 docker。但是使用 docker 环境的 ingress 存在一个错误。

minikube start --driver="virtualbox"

现在 minikube 已经启动了里面的 Kubernetes 集群,你也可以通过参考中提供的官网文档来配置它使用的资源。

我们需要在 minikube 上启用几个附加组件来运行应用程序。第一个是仪表板,它是一个用于监控集群部署服务等的 GUI,第二个插件是ingress

启用仪表板的命令:

minikube addons enable dashboard

启用入口的命令:

minikube addons enable ingress

现在我们需要公开ingress-nginx部署,以便可以从外部世界访问它。使用以下命令执行此操作:

kubectl expose deployment ingress-nginx-controller --target-port=80 
--type=NodePort -n kube-system

现在验证服务是否正在运行 run: 并且输出应该类似于下面给出的输出。

kubectl get services -n kube-system

接下来,设置一个jwt-secret环境变量,要设置它,请运行以下命令:

kubectl create secret generic jwt-secret --from-literal=JWT_KEY=asdf

我们将在身份验证服务中使用它来生成jwt令牌。

运行应用程序的步骤:

使用以下命令运行应用程序:

skaffold dev

当您运行此命令时,将安装每个服务的所有依赖项并构建映像,启动集群。如果 skaffold 在两者之间失败,只需重新运行上述命令。

输出:

停止 minikube:以下是停止 minikube 的命令:

minikube stop

删除集群:以下是删除集群的命令:

minikube delete

参考:

  • 码头工人: https://docs.docker.com/get-started/overview/
  • Ingressnginx: https://kubernetes.github.io/ingress-nginx/
  • 斯卡夫德: https://skaffold.dev/docs/
  • Minikube: https://minikube.sigs.k8s.io/docs