人生若只如初见,何事秋风悲画扇。
前言
Kubernetes
是目前最流行的容器编排工具之一,由Google
开发并维护。它提供了完整的容器编排解决方案,包括自动化部署、资源管理和调度、服务发现和负载均衡等功能。
然而,对于初学者来说,Kubernetes
可能看起来非常复杂和难以理解,但是通过Minikube
来使用它成本就很低了,Minikube
大大降低了学习与使用成本,通过它我们可以轻松驾驭Kubernetes
。
在本文中,我将带你一起安装kubectl
和Minikube
,然后使用Minikube
来体验 Kubernetes
的基础功能,以便于更好的了解Kubernetes
的基本概念和工作方式,并开始使用Kubernetes
来管理和部署您的容器化应用程序。
![](https://file.jishuzhan.net/article/1681481636539011074/c558479d6c9f476bae55bab237e5a2b7.gif)
安装 kubectl
⁉️ kubectl 是什么?
kubectl
是Kubernetes
的命令行工具,它提供了一种简单的方式来管理Kubernetes
集群中的资源。通过kubectl
,我们可以可以创建、更新、删除和查询Kubernetes集群中的资源,例如Pods
、Services
、Deployments
、ConfigMaps
和Secrets
等。
以下是kubectl的一些主要功能:
- 创建资源:使用kubectl create命令可以创建新的Kubernetes资源,例如Pod、Service、Deployment等。
- 更新资源:使用kubectl apply命令可以更新现有的Kubernetes资源,例如修改Pod的配置文件或者更新Deployment的镜像版本。
- 删除资源:使用kubectl delete命令可以删除Kubernetes集群中的资源,例如删除一个Pod或者一个Deployment。
- 查询资源:使用kubectl get命令可以查询Kubernetes集群中的资源,例如查看所有的Pods或者一个Deployment的状态。
- 操作标签:使用kubectl label命令可以为Kubernetes集群中的资源添加或修改标签,以便进行更细粒度的管理和控制。
总之,kubectl是Kubernetes中非常重要的一个工具,它可以帮助用户轻松地管理Kubernetes集群中的资源,提高开发效率和降低成本。
⁉️ 通过Homebrew 安装 kubectl
⭐️ 1、brew 安装 kubectl
bash
brew install kubectl
![](https://file.jishuzhan.net/article/1681481636539011074/e7257a5d17e14503afc9f27fde9602ee.png)
⭐️ 2、检查安装版本
可以通过kubectl version
命令查看 kubectl
的安装版本,用于验证 kubectl
是否安装成功。
bash
kubectl version --client
![](https://file.jishuzhan.net/article/1681481636539011074/b5bcc3585a544d4bb8ba5dd30a8d18c3.png)
⭐️ 3、检查 kubectl
配置信息
为了让 kubectl 能发现并访问 Kubernetes 集群,当部署成功 Minikube
集群时,会自动生成kubeconfig
文件。
我们还可以通过获取集群状态的方法,检查是否已正确地配置了 kubectl
:
shell
kubectl cluster-info
如果你看到 The connection to the server <server-name:port> was refused - did you specify the right host or port?
,说明 kubectl
配置有问题,别急,安装完Minikube
之后就正常了。
![](https://file.jishuzhan.net/article/1681481636539011074/79db94a841f2456d83cb365662acbb59.png)
安装 minikube
Minikube
是一个"小而美"的 "迷你"版本 的 Kubernetes
,它可执行文件仅有不到 100MB,运行镜像也不过 1GB左右,但它小小的资源占用下却干成了大事!它集成了 Kubernetes
的绝大多数功能特性,不仅有核心的容器编排功能,还有丰富的插件,例如 Dashboard
、Ingress
、Istio
、Registry
等。
Minikube
是一个轻量级的Kubernetes本地开发环境,它可以在任何支持Docker
的机器上运行。相比于完整的Kubernetes
集群,minikube
更加轻量级、易于安装和使用,并且不需要大量的硬件资源。
通过使用 minikube ,我们可以在不依赖于云服务提供商的情况下,快速地学习和测试Kubernetes的各种功能。帮助开发者在本地环境中快速地进行Kubernetes开发和测试,提高开发效率和降低学习成本。
以下是minikube的一些优势:
- 快速启动:minikube可以在几秒钟内启动一个本地的Kubernetes集群,这使得开发者可以快速地进行开发和测试。
- 简单易用:minikube提供了一个简单的命令行界面,使得用户可以轻松地创建和管理Kubernetes集群。
- 跨平台支持:minikube可以在Windows、MacOS和Linux等操作系统上运行,这使得用户可以在不同的平台上进行开发和测试。
- 独立性:minikube是一个独立的应用程序,它不需要依赖于其他软件或服务,这使得它更加稳定和可靠。
- 可扩展性:虽然minikube是一个轻量级的Kubernetes集群,但是它可以通过添加更多的节点来扩展集群的规模,以满足更大的负载需求。
⭐️ 1、安装 minikube
Kubernetes官网提供了多种安装方法, 你可以选择任意一种方式来进行安装。
![](https://file.jishuzhan.net/article/1681481636539011074/acbd8aaa90d54958906d0dbf6d6dce09.png)
我们通过Homebrew的方式来进行安装。
bash
brew install minikube
![](https://file.jishuzhan.net/article/1681481636539011074/644b1b81246448df9074425b56aec512.png)
⭐️ 2、查看minikube版本
安装成功后,我们通过 minikube version
命令检验一下安装的版本。
bash
minikube version
![](https://file.jishuzhan.net/article/1681481636539011074/d8c20edb2fc64ca48fcfdb123a09595a.png)
⭐️ 3、运行 minikube
minikube
安装成功后,我们就可以运行它了!通过 start命令。
minikube start
命令用于启动 Minikube 集群。它会在本地计算机上创建一个虚拟机,并在其中运行 Kubernetes 集群。
在运行 minikube start
命令时,它将执行以下步骤:
-
检查 Minikube 是否已经安装,并下载最新版本的 Minikube(如果需要)。
-
检查虚拟化驱动程序是否可用,并下载和配置所需的虚拟化驱动程序(如果需要)。
-
创建一个虚拟机,并在其中运行 Kubernetes 集群。
-
配置
kubectl
命令行工具,以便它可以与 Minikube 集群进行通信。minikube start
![](https://file.jishuzhan.net/article/1681481636539011074/4479b6a2b2e7475194c823ad570d4bc5.png)
⭐️ 4、检查 Minikube 的状态
minikube status
命令用于检查 Minikube
的状态。它将显示 Minikube
的当前状态以及kubelet
、apiserver
等组件的运行信息。
minikube status
![](https://file.jishuzhan.net/article/1681481636539011074/6e51996d1b074df78566fbbaab207c5c.png)
⭐️ 5、获取 Kubernetes 集群中所有节点的状态信息
kubectl get nodes
命令用于获取 Kubernetes 集群中所有节点的状态信息。包含了集群中所有节点的名称、状态、角色、版本、内存和 CPU 使用情况等信息。
bash
kubectl get nodes
![](https://file.jishuzhan.net/article/1681481636539011074/4bfd15c283704bc0a70ae849d84a80eb.png)
⭐️ 6、获取 Kubernetes 集群信息
kubectl cluster-info
命令用于获取 Kubernetes 集群的信息。
![](https://file.jishuzhan.net/article/1681481636539011074/21a00a142c304f7dbf60de5241f67dce.png)
⭐️ 7、停止minikube
minikube stop
命令用于停止 Minikube 集群。在运行 minikube stop
命令时,它将停止运行在本地计算机上的虚拟机,并关闭其中运行的 Kubernetes 集群。
minikube stop
![](https://file.jishuzhan.net/article/1681481636539011074/a6ab509a898242a0b9690df325839780.png)
Minikube 初体验
![](https://file.jishuzhan.net/article/1681481636539011074/82cad95204ff494f9973b19dcdaeb3c7.png)
Kubernetes Pod 是由一个或多个为了管理和联网而绑定在一起的容器构成的组。
Kubernetes Deployment 检查 Pod 的健康状况,并在 Pod 中的容器终止的情况下重新启动新的容器。 Deployment 是管理 Pod 创建和扩展的推荐方法。
⭐️ 1、创建 Deployment
使用 kubectl create
命令创建管理 Pod 的 Deployment。该 Pod 根据提供的 Docker 镜像运行容器。
这里我们运行了k8s提供的公共测试镜像服务,并命名 deployment 为 hello-node。
shell
# 运行包含 Web 服务器的测试容器镜像
kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
⭐️ 2、查看Pod状态信息
kubectl get pods
命令用于获取 Kubernetes 集群中所有 Pod 的状态信息。在运行 kubectl get pods
命令时,它将返回一个表格,其中包含了集群中所有 Pod 的名称、所属命名空间、状态、重启次数、启动时间等信息。
bash
kubectl get pods
![](https://file.jishuzhan.net/article/1681481636539011074/f4116cb6bca846edb4811dc551a65340.png)
⭐️ 3、创建Service
在 Kubernetes 集群中创建一个 Service,并将其暴露为 NodePort 类型的服务,之后便可以访问在 Deployment 中运行的 Pod 的指定端口。
bash
kubectl expose deployment/hello-node --type="NodePort" --port 8080
这个命令的含义是:
kubectl expose
命令创建一个 Service 对象。--port
参数指定了 Service 对象要监听的端口号,这里是 8080--type="NodePort"
参数,Kubernetes 将为 Service 对象分配一个节点可访问的端口号
![](https://file.jishuzhan.net/article/1681481636539011074/234a6db1a39640eb8eae7afad13ea61c.png)
⭐️ 4、查看Service
kubectl get services
命令用于获取 Kubernetes 集群中所有 Service 对象的状态信息。
返回结果包含了集群中所有 Service 对象的名称、所属命名空间、类型、集群 IP 地址、端口等信息。
在输出的表格中,每一行表示一个 Service,每一列表示一个 Service 的属性。以下是 kubectl get services
命令输出的表格中可能包含的列:
NAME
: Service 的名称。TYPE
: Service 的类型,例如 ClusterIP、NodePort 或 LoadBalancer。CLUSTER-IP
: Service 的集群 IP 地址。EXTERNAL-IP
: Service 的外部 IP 地址(如果有)。PORT(S)
: Service 所公开的端口和协议。AGE
: Service 的创建时间。
bash
kubectl get services
![](https://file.jishuzhan.net/article/1681481636539011074/b4ddb71c84534caf94cce598db898c03.png)
我们也可以指定查看 hello-node
Service
的信息
kubectl get services hello-node
![](https://file.jishuzhan.net/article/1681481636539011074/d20eb7c12559433785123064296e4eb1.png)
⭐️ 5、Scale扩缩容
kubectl scale
命令用于扩展或缩小 Kubernetes 集群中的 Deployment、ReplicaSet 或 StatefulSet。它允许您动态地增加或减少正在运行的 Pod 的数量,以满足应用程序的负载需求。
执行如下命令,将扩展 Pod 数量为3个。
kubectl scale deployment hello-node --replicas=3
![](https://file.jishuzhan.net/article/1681481636539011074/330371e6c1f14a2e8ad93cd0df20d69f.png)
现在你有3个应用副本了, 每个都在群集上独立运行,并能负载均衡他们之间的流量。
我们再来查看一下 deployment 和 pod 的情况。
bash
kubectl get deployment
kubectl get pods
![](https://file.jishuzhan.net/article/1681481636539011074/5dc4abf7cd3744fab0df2e5759d2d78a.png)
Minikube 可视化
minikube dashboard
命令用于打开 Minikube 集群的可视化仪表板。在运行 minikube dashboard
命令时,它将启动一个 Web 服务器,并在默认浏览器中打开一个 Web 页面,显示 Minikube 集群的状态和详细信息。这使得管理和监视 Kubernetes 集群变得更加简单和直观。
Minikube 仪表板是一个基于 Web 的用户界面,可以让用户通过图形化方式管理 Kubernetes 集群。它提供了一些有用的功能,例如:
- 查看 Kubernetes 集群中的节点、Pod、服务等资源的详细信息。
- 查看 Kubernetes 集群的事件和日志。
- 创建、编辑和删除 Kubernetes 资源。
- 运行和监视应用程序。
⁉️ dashboard插件并不是默认启动的,需要我们手动开启。
⭐️ 1、启用 dashboard插件
bash
minikube addons enable dashboard
![](https://file.jishuzhan.net/article/1681481636539011074/59ed8708d4844bbfb3ccf21d27cd34ec.png)
⭐️ 2、打开可视化面板
minikube dashboard
命令用于打开 Minikube 集群的可视化仪表板。
bash
minikube dashboard
![](https://file.jishuzhan.net/article/1681481636539011074/5a208c9d225f4c598486fdde2b494eb3.png)
自动弹出浏览器控制台
![](https://file.jishuzhan.net/article/1681481636539011074/f75d696036f0455db6a650afe4bb5054.png)
好啦,本文到此结束啦,minikube 这个小巧的 Kubernetes 还挺简单的,是不?
参考:Kubernetes官网
🎉 如果喜欢这篇文章,点赞👍 收藏 ⭐ 关注 ✅ 哦,创作不易,感谢!😀
![](https://file.jishuzhan.net/article/1681481636539011074/9c0e5367ac264316893bdefeebdf1248.jpeg)