【云原生丶Kubernetes】Kubernetes初体验

news2025/1/11 2:28:48

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

前言

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 deployment

kubectl 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.coloradmin.cn/o/717198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio实现内容丰富的安卓民宿酒店预订平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号106 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看民宿 3.民…

缔造网络世界的奇迹:OSI参考模型的魔力之旅

文章目录 一 OSI参考模型1.1 OSI参考模型简介1.2 OSI参考模型的下特性和优点1.3 OSI参考模型的层次结构1.4 OSI参考模型层次间的关系以及数据封装 二 OSI参考模型的层次结构详解2.1 物理层2.2 数据链路层2.3 网络层2.3.1 网络层地址2.3.2 路由协议与可路由协议2.3.3 面向连接和…

激光SLAM(二):点云拟合和平面参数化

点云拟合和平面参数 一、平面拟合&#xff1a;特征值法和SVD法二、平面参数化1&#xff09;Hesse形式2&#xff09;球坐标3&#xff09;最近点4) 单位四元数 三、直线拟合 一、平面拟合&#xff1a;特征值法和SVD法 平面方程如下&#xff0c;n是法向量&#xff0c;d是截距 当…

python协程—asyncio模块

目录 什么是协程 协程的特点 为什么使用协程 asyncio协程模块 多任务的协程 总结 什么是协程 协程&#xff08;Coroutine&#xff09;是一种并发编程的技术&#xff0c;它允许程序在执行过程中暂停和恢复。协程可以看作是一种特殊的函数&#xff0c;它可以暂停执行&#…

快速安装Kibana,head插件以及IK分词器

安装Kibana Kibana是基于node.js的,安装这个之前要先安装node.js 1 压缩包下载地址: Kibana 6.2.4 | Elastic 2.将下载的Kibana压缩包解压到任意一个没有中文没有空格的目录下,进入Kibana安装目录下的config目录&#xff0c;修改kibana.yml文件&#xff0c;添加Elasticsearch服…

钳形表校准装置 “定点输出”方式

装置具有“定点输出”方式&#xff0c;通过点击触摸屏&#xff0c;直接设置所需输出的量值&#xff0c;装置将全自动切换至最佳量程输出&#xff0c;使得校准数字式仪表变得非常方便。特别是在设定交流电压/电流输出时&#xff0c;直接同时输入幅值和频率即可&#xff0c;使用十…

【计算机视觉】对比学习综述(自己的一些理解)

对比loss 对比学习的 loss&#xff08;InfoNCE&#xff09;即以最 大化互信息为目标推导而来。其核心是通过计算样本表示间的距离&#xff0c;拉近正样本&#xff0c; 拉远负样本&#xff0c;因而训练得到的模型能够区分正负例。 具体做法为&#xff1a;对一个 batch 输入的图…

Tensorflow入门(1)——深度学习框架Tesnsflow入门 环境配置 认识Tensorflow

目录 一、环境配置1.Anaconda以及Tensorflow的安装2.CONDA环境安装3.测试是否成功 二、认识TensorFlow1.图 Graph()2.会话 Session()3.张量 Tensor&#xff08;1&#xff09;张量的形状&#xff08;2&#xff09;数据类型张量的动态形状与静态形状 4.张量操作&#xff08;1&…

No9.精选前端面试题,享受每天的挑战和学习

文章目录 从recat源码角度说明下setState流程同源策略限制什么行为computed和watch的区别http和https的区别vue中的route和router的异同点&#xff0c;区别 从recat源码角度说明下setState流程 在 React 的源码中&#xff0c;setState 方法是用于更新组件的状态&#xff08;st…

java中预览pdf或者图片

GetMapping("preview1")ApiOperation(value "根据文件名实现预览功能")public void previewFile1( HttpServletResponse response) throws IOException {String filePath"C:\\Users\\Harbor Lau\\Desktop\\哈哈\\""11月燃油费(公开).pdf&q…

照片如何恢复?试试这3个简单操作!

我的电脑里保存了很多照片&#xff0c;都是对我来说意义重大的&#xff0c;但最近电脑内存不足了&#xff0c;在清理内存时&#xff0c;我不小心把照片也清空了&#xff0c;这些照片应该如何恢复呢&#xff1f;谁有什么好的方法恢复电脑里的照片吗&#xff1f; 可能很多人都会选…

【UnityDOTS 小知识】RequireMatchingQueriesForUpdate与RequireForUpdate

RequireMatchingQueriesForUpdate与RequireForUpdate 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 一、RequireMatchingQueriesForUpdate 将这个特性放置于System类上…

【算法与数据结构】字符串匹配算法

文章目录 一、暴力穷解法二、KMP算法二、BM算法三、Sunday算法四、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、暴力穷解法 思路分析&#xff1a;首先判断字符串是否合法&#xff0c;然后利用for循环&#xff0c;取出…

2024考研408-操作系统 第一章-计算机系统概述学习笔记

文章目录 前言一、操作系统的基本概述1.1、操作系统的概念1.2、操作系统的功能1.2.1、操作系统提供的功能及示例1.2.2、操作系统提供的方便易用服务1.2.2.1、操作系统刚普通用户使用&#xff08;GUI用户界面、命令接口&#xff09;1.2.2.2、给程序员提供的程序接口小总结&#…

Cesium中加载WMS、WMTS、WFS三类服务,并进行点击查询

近期工作中需要使用Cesium加载各类服务&#xff0c;并进行点击查询。故针对不同的服务对加载方法和点击查询方法进行了整理。 一、加载方法 1.1加载WMS export function wmsService(url,layer){let wmsnew Cesium.WebMapServiceImageryProvider({url : url,//如http://106.12…

【Spring Boot】Spring Boot配置文件详情

前言 Spring Boot是一个开源的Java框架&#xff0c;用于快速构建应用程序和微服务。它基于Spring Framework&#xff0c;通过自动化配置和约定优于配置的方式&#xff0c;使开发人员可以更快地启动和运行应用程序。Spring Boot提供了许多开箱即用的功能和插件&#xff0c;包括嵌…

【笔记】微机原理及接口技术4 -- ADC/DAC

模数数模转换器 控制系统中的模拟接口 A/D 转换器 把模拟信号转成数字信号&#xff0c;供微处理器使用&#xff1b; D/A 转换器 输出模拟信号&#xff0c;供外部控制装置使用&#xff1b; D/A 原理 D/A 转换器的主要部件是电阻开关网络 通常是由输入的二进制数的各位控制一些…

EasyCVR如何在不修改分辨率的情况下进行H.265自动转码H.264?

EasyCVR视频融合平台基于云边端一体化架构&#xff0c;可支持多协议、多类型设备接入&#xff0c;在视频能力上&#xff0c;平台可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、H.265转码、智能分析以及平台级联等。 我们在此前的文章中介绍过…

【Python实战】Python采集某大夫文字数据

前言 今天&#xff0c;有一位粉丝找到我&#xff0c;希望我出一期关于某大夫数据采集的文章&#xff0c;今天&#xff0c;我们就来采集某大夫的问诊数据。 环境使用 python 3.9pycharm 模块使用 requests 模块介绍 requests requests是一个很实用的Python HTTP客户端库&…

java 健身营养师网站系统myeclipse定制开发mysql数据库B/S模式java编程计算机网页

一、源码特点 JSP 健身营养师网站系统 是一套完善的系统源码&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。研究的基本内容是基于网上 书店系统&#xff0c;使用JSP作为页面开发工具。Web服…