Kubernetes - 安装方法
Minikube:
对于想要在系统上安装 Kubernetes 但系统资源有限的用户来说,它是理想的选择。因此,minikube 的关键点在于它没有单独的 Kubernetes 主节点和 Kubernetes 工作节点架构。在这里,我们将所有 Kubernetes 组件打包在一起作为一体化设置。单个系统同时充当主节点和工作节点。访问此网站以根据您的要求安装 minikube。
Kubeadm:
如果您需要实际的实时设置,这是一种可行的方法。可以使用 Kubeadm 工具完成。它可用于设置多节点 Kubernetes 集群。它是 Kubernetes 最流行的安装方法之一。根据您拥有的系统资源,您可以创建多个 VM。然后,您可以配置 Kubernetes 主组件和节点组件。如果您的系统资源有限,建议使用基于云的 VM。要安装 Kubeadm 工具,请访问此网站并根据您的要求完成安装步骤。
如何使用 minikube 在本地机器上设置 Kubernetes 集群?
在 AWS、Google Cloud 等平台上创建Kubernetes集群可能有点困难,而且需要花费相当多的钱。如果您有 Windows 计算机或 Mac,那么使用适用于 Windows/Mac 的 Docker Desktop 创建多容器集群并使用Kubernetes管理集群就很容易了。
前提条件:对 Docker 和 Kubernetes 有一些基本了解。
但是对于基于 Linux 的系统,您必须选择昂贵的基于云的解决方案。因此,我们可以使用minikube在本地机器上创建自己的集群。它是本地 Kubernetes,专注于让 Kubernetes 的学习和开发变得简单。您只需要安装 docker 或任何虚拟机环境。在下面的例子中,我们使用了虚拟盒。
安装 Minikube:要在 Linux 上安装 minikube,请使用以下命令:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
示例:为了测试这一点,我们将使用一个售票 Web 应用程序,该应用程序使用 NodeJS、ExpressJS、NextJS 构建,并使用 nats-streaming 进行事件传输,使用ingress-nginx进行网络和负载平衡。不同的服务使用不同的 docker 镜像,并使用 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
现在验证服务是否正在运行:输出应该类似于下面给出的输出。
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