【云原生丶Kubernetes】Kubernetes初体验

news/2024/11/15 21:04:29/

人生若只如初见,何事秋风悲画扇

前言

Kubernetes 是目前最流行的容器编排工具之一,由Google开发并维护。它提供了完整的容器编排解决方案,包括自动化部署、资源管理和调度、服务发现和负载均衡等功能。

然而,对于初学者来说,Kubernetes可能看起来非常复杂和难以理解,但是通过Minikube来使用它成本就很低了,Minikube 大大降低了学习与使用成本,通过它我们可以轻松驾驭Kubernetes

在本文中,我将带你一起安装kubectlMinikube,然后使用Minikube来体验 Kubernetes的基础功能,以便于更好的了解Kubernetes的基本概念和工作方式,并开始使用Kubernetes来管理和部署您的容器化应用程序。

在这里插入图片描述

安装kubectl

⁉️ kubectl 是什么?

kubectlKubernetes的命令行工具,它提供了一种简单的方式来管理Kubernetes集群中的资源。通过kubectl,我们可以可以创建、更新、删除和查询Kubernetes集群中的资源,例如PodsServicesDeploymentsConfigMapsSecrets等。

以下是kubectl的一些主要功能:

  1. 创建资源:使用kubectl create命令可以创建新的Kubernetes资源,例如Pod、Service、Deployment等。
  2. 更新资源:使用kubectl apply命令可以更新现有的Kubernetes资源,例如修改Pod的配置文件或者更新Deployment的镜像版本。
  3. 删除资源:使用kubectl delete命令可以删除Kubernetes集群中的资源,例如删除一个Pod或者一个Deployment。
  4. 查询资源:使用kubectl get命令可以查询Kubernetes集群中的资源,例如查看所有的Pods或者一个Deployment的状态。
  5. 操作标签:使用kubectl label命令可以为Kubernetes集群中的资源添加或修改标签,以便进行更细粒度的管理和控制。

总之,kubectl是Kubernetes中非常重要的一个工具,它可以帮助用户轻松地管理Kubernetes集群中的资源,提高开发效率和降低成本。

⁉️ 通过Homebrew 安装 kubectl

⭐️ 1、brew 安装 kubectl

brew install kubectl

在这里插入图片描述

⭐️ 2、检查安装版本

可以通过kubectl version命令查看 kubectl 的安装版本,用于验证 kubectl 是否安装成功。

kubectl version --client

在这里插入图片描述

⭐️ 3、检查 kubectl 配置信息

为了让 kubectl 能发现并访问 Kubernetes 集群,当部署成功 Minikube集群时,会自动生成kubeconfig文件。

我们还可以通过获取集群状态的方法,检查是否已正确地配置了 kubectl

kubectl cluster-info

如果你看到 The connection to the server <server-name:port> was refused - did you specify the right host or port?,说明 kubectl 配置有问题,别急,安装完Minikube之后就正常了。

在这里插入图片描述

安装 minikube

Minikube 是一个"小而美"的 “迷你”版本 的 Kubernetes,它可执行文件仅有不到 100MB,运行镜像也不过 1GB左右,但它小小的资源占用下却干成了大事!它集成了 Kubernetes 的绝大多数功能特性,不仅有核心的容器编排功能,还有丰富的插件,例如 DashboardIngressIstioRegistry 等。

Minikube 是一个轻量级的Kubernetes本地开发环境,它可以在任何支持Docker的机器上运行。相比于完整的Kubernetes集群,minikube更加轻量级、易于安装和使用,并且不需要大量的硬件资源。

通过使用 minikube ,我们可以在不依赖于云服务提供商的情况下,快速地学习和测试Kubernetes的各种功能。帮助开发者在本地环境中快速地进行Kubernetes开发和测试,提高开发效率和降低学习成本。

以下是minikube的一些优势:

  1. 快速启动:minikube可以在几秒钟内启动一个本地的Kubernetes集群,这使得开发者可以快速地进行开发和测试。
  2. 简单易用:minikube提供了一个简单的命令行界面,使得用户可以轻松地创建和管理Kubernetes集群。
  3. 跨平台支持:minikube可以在Windows、MacOS和Linux等操作系统上运行,这使得用户可以在不同的平台上进行开发和测试。
  4. 独立性:minikube是一个独立的应用程序,它不需要依赖于其他软件或服务,这使得它更加稳定和可靠。
  5. 可扩展性:虽然minikube是一个轻量级的Kubernetes集群,但是它可以通过添加更多的节点来扩展集群的规模,以满足更大的负载需求。

⭐️ 1、安装 minikube

Kubernetes官网提供了多种安装方法, 你可以选择任意一种方式来进行安装。

在这里插入图片描述

我们通过Homebrew的方式来进行安装。

brew install minikube

在这里插入图片描述

⭐️ 2、查看minikube版本

安装成功后,我们通过 minikube version 命令检验一下安装的版本。

minikube version

在这里插入图片描述

⭐️ 3、运行 minikube

minikube 安装成功后,我们就可以运行它了!通过 start命令。

minikube start 命令用于启动 Minikube 集群。它会在本地计算机上创建一个虚拟机,并在其中运行 Kubernetes 集群。

在运行 minikube start 命令时,它将执行以下步骤:

  1. 检查 Minikube 是否已经安装,并下载最新版本的 Minikube(如果需要)。
  2. 检查虚拟化驱动程序是否可用,并下载和配置所需的虚拟化驱动程序(如果需要)。
  3. 创建一个虚拟机,并在其中运行 Kubernetes 集群。
  4. 配置 kubectl 命令行工具,以便它可以与 Minikube 集群进行通信。
minikube start

在这里插入图片描述

⭐️ 4、检查 Minikube 的状态

minikube status 命令用于检查 Minikube 的状态。它将显示 Minikube 的当前状态以及kubeletapiserver等组件的运行信息。

minikube status

在这里插入图片描述

⭐️ 5、获取 Kubernetes 集群中所有节点的状态信息

kubectl get nodes 命令用于获取 Kubernetes 集群中所有节点的状态信息。包含了集群中所有节点的名称、状态、角色、版本、内存和 CPU 使用情况等信息。

kubectl get nodes

在这里插入图片描述

⭐️ 6、获取 Kubernetes 集群信息

kubectl cluster-info 命令用于获取 Kubernetes 集群的信息。

在这里插入图片描述

⭐️ 7、停止minikube

minikube stop 命令用于停止 Minikube 集群。在运行 minikube stop 命令时,它将停止运行在本地计算机上的虚拟机,并关闭其中运行的 Kubernetes 集群。

minikube stop

在这里插入图片描述

Minikube初体验

在这里插入图片描述

Kubernetes Pod 是由一个或多个为了管理和联网而绑定在一起的容器构成的组。

Kubernetes Deployment 检查 Pod 的健康状况,并在 Pod 中的容器终止的情况下重新启动新的容器。 Deployment 是管理 Pod 创建和扩展的推荐方法。

⭐️ 1、创建 Deployment

使用 kubectl create 命令创建管理 Pod 的 Deployment。该 Pod 根据提供的 Docker 镜像运行容器。

这里我们运行了k8s提供的公共测试镜像服务,并命名 deployment 为 hello-node。

# 运行包含 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 的名称、所属命名空间、状态、重启次数、启动时间等信息。

kubectl get pods

在这里插入图片描述

⭐️ 3、创建Service

在 Kubernetes 集群中创建一个 Service,并将其暴露为 NodePort 类型的服务,之后便可以访问在 Deployment 中运行的 Pod 的指定端口。

kubectl expose deployment/hello-node --type="NodePort" --port 8080

这个命令的含义是:

  1. kubectl expose 命令创建一个 Service 对象。
  2. --port 参数指定了 Service 对象要监听的端口号,这里是 8080
  3. --type="NodePort" 参数,Kubernetes 将为 Service 对象分配一个节点可访问的端口号

在这里插入图片描述

⭐️ 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 的创建时间。
kubectl get services

在这里插入图片描述

我们也可以指定查看 hello-node Service的信息

kubectl get services hello-node

在这里插入图片描述

⭐️ 5、Scale扩缩容

kubectl scale 命令用于扩展或缩小 Kubernetes 集群中的 Deployment、ReplicaSet 或 StatefulSet。它允许您动态地增加或减少正在运行的 Pod 的数量,以满足应用程序的负载需求。

执行如下命令,将扩展 Pod 数量为3个。

kubectl scale deployment hello-node --replicas=3

在这里插入图片描述

现在你有3个应用副本了, 每个都在群集上独立运行,并能负载均衡他们之间的流量。

我们再来查看一下 deployment 和 pod 的情况。

kubectl get deploymentkubectl get pods

在这里插入图片描述

minikube 可视化

minikube dashboard 命令用于打开 Minikube 集群的可视化仪表板。在运行 minikube dashboard 命令时,它将启动一个 Web 服务器,并在默认浏览器中打开一个 Web 页面,显示 Minikube 集群的状态和详细信息。这使得管理和监视 Kubernetes 集群变得更加简单和直观。

Minikube 仪表板是一个基于 Web 的用户界面,可以让用户通过图形化方式管理 Kubernetes 集群。它提供了一些有用的功能,例如:

  • 查看 Kubernetes 集群中的节点、Pod、服务等资源的详细信息。
  • 查看 Kubernetes 集群的事件和日志。
  • 创建、编辑和删除 Kubernetes 资源。
  • 运行和监视应用程序。

⁉️ dashboard插件并不是默认启动的,需要我们手动开启

⭐️ 1、启用 dashboard插件

minikube addons enable dashboard

在这里插入图片描述

⭐️ 2、打开可视化面板

minikube dashboard 命令用于打开 Minikube 集群的可视化仪表板。

minikube dashboard

在这里插入图片描述

自动弹出浏览器控制台

在这里插入图片描述

好啦,本文到此结束啦,minikube 这个小巧的 Kubernetes 还挺简单的,是不?

参考:Kubernetes官网


🎉 如果喜欢这篇文章,点赞👍 收藏关注 ✅ 哦,创作不易,感谢!😀

请添加图片描述


http://www.ppmy.cn/news/724948.html

相关文章

SpringBoot处理全局异常详解(全面详细+Gitee源码)

前言&#xff1a;在日常的开发工作中&#xff0c;项目在运行过程中多多少少是避免不了报错的&#xff0c;对于报错信息肯定不可以把全部信息都抛给客户端去显示&#xff0c;这里就需要我们对常见的七种异常情况统一进行处理&#xff0c;让整个项目更加优雅。 目录 一、基本介绍…

中国移动发狠,给携转用户巨额优惠,反击中国电信

近日据业内人士指出中国移动针对携号转网用户提供了巨额优惠&#xff0c;只要21元就可获得30GB全国通用流量移动套餐&#xff0c;再另送500M宽带&#xff0c;两年免费、安装费全免&#xff0c;对于我们老用户来说这可是139元套餐才能享受到&#xff0c;这显示出中国移动为了争夺…

Java实现PDF转Word【收集整理】

首先感谢 Mgg9702 博主提供的转换依赖包处理&#xff0c;关于如何获得一个破解的pdf转word我这里就不追述了&#xff0c;有需要去看&#xff1a; https://blog.csdn.net/Mgg9702/article/details/124987483?spm1001.2014.3001.5506 我这里主要涉及到整理一个pdf转word的jar工…

以太网 (数据链路层协议)

以太网 认识以太网以太网数据帧 认识以太网 “以太网” 不是一种具体的网络&#xff0c;而是一种技术标准&#xff1b;既包含了数据链路层的内容&#xff0c;也包含了一些物理层的内容。 例如&#xff1a;规定了网络拓扑结构&#xff0c;访问控制方式&#xff0c;传输速率等&a…

重装系统会影响到电脑的正常使用吗

​重装系统对电脑有影响吗?重装系统是指对计算机的操作系统进行重新的安装。当用户错误操作或遭受病毒的破坏时&#xff0c;系统中的重要文件就会受损导致错误&#xff0c;严重甚至可能出现崩溃&#xff0c;电脑无法启动操作&#xff0c;因此不得不进行重新安装。一些喜欢操作…

xp系统安装c语言教程,神舟战神K670C-G4A1笔记本u盘重装系统xp教程

神舟战神K670C-G4A1笔记本预装Windows 10系统&#xff0c;搭载了Intel Pentium G5420处理器&#xff0c;主频为3.8GHz&#xff0c;而三级缓存为L3 4M。另外&#xff0c;电脑还配置了8GB运行内存&#xff0c;而最大支持内存则是32GB&#xff0c;整体性价比较高。但是&#xff0c…

关于神舟电脑U盘重装windows10系统

关于神舟电脑U盘重装windows10系统 神舟电脑重装新安装系统遇到的坑&#xff0c;之前电脑安装使用的是Linux系统&#xff0c;但是由于电脑版本原因导致安装Linux失败&#xff0c;于是便想装回windows10系统&#xff0c;本人从售后获取windows10专业版镜像以后使用ultralso&…

0基础学习VR全景平台篇 第55篇:专业版功能-数据统计

使用蛙色VR平台数据统计功能&#xff0c;可以统计分析整个账号下【所有作品】的访问数据&#xff1b; 亦可分析单个作品中【每个场景】的访问数据。 账号数据统计功能位置 单作品数据统计功能位置 一、本功能将用在哪里&#xff1f; 数据统计功能&#xff0c;可实现对作品总访…