【云原生丶Kubernetes】Kubernetes初体验

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

前言

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.hqwc.cn/news/9006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】文件描述符(下篇)

文章目录 &#x1f4d6; 前言1. 文件描述符fd的分配规则2. 重定向的本质3. 缓冲区的理解3.1 感受缓冲区的存在&#xff1a;3.2 正式认识缓冲区&#xff1a;综合例题&#xff1a; 4. 模拟实现C语言的文件操作5. 完善之前实现的shell5.1 程序替换&#xff0c;会影响曾经子进程打开…

决策树 ID3 手工推导

掌握决策树ID3算法的原理&#xff0c;通过增益熵实现手工推导的过程。 参考案例&#xff1a;https://cuijiahua.com/blog/2017/11/ml_2_decision_tree_1.html 机器学习实战教程(二)&#xff1a;决策树基础篇之让我们从相亲说起 决策树 ID3 手工推导 决策树 ID3 简介 ID3作为一种…

多个微信号如何管理?

很多公司都在发愁这几个问题&#xff1a; 1、拥有多个微信号&#xff0c;不想管理多台手机&#xff0c;想将所有微信号进行统一管理 2、想用软件来代替传统的营销体系&#xff0c;安全性上也要有保障 3、用人成本太大与公司的效益不成正比 4、多个账号发圈不方便&#xff0…

Neo4j docker 部署

想要运行简单测试一下neo4j&#xff0c;就直接使用docker创建了一个容器&#xff0c;并用cypher-shell本地连接neo4j&#xff0c;创建图进行测试。 1 开启docker sudo systemctl start docker2 拉取镜像源 sudo docker pull neo4j # 默认latest版本3 查看本地镜像&#xff0…

ElasticSearch学习02——Kibana安装

ElasticSearch学习02——Windows下Kibana安装 Kibana是界面化的查询数据的工具&#xff0c;下载时尽量下载与ElasicSearch一致的版本。 1、下载对应版本的Kibana ​ 有了ElasticSearch安装的经验&#xff0c;我们发现了ES和JDK有着版本对应的关系&#xff0c;Kibana和ES共同为…

【机器学习】支持向量机(上)

支持向量机&#xff08;上&#xff09; 目录 一、导言二、何为支持向量机三、点到平面的距离计算四、构建目标函数&#xff08;支持向量机的基本型推导&#xff09;五、利用 KKT 条件对目标函数进行转换1、拉格朗日乘数法的引入2、KKT 条件的引入3、松弛互补条件的引入4、总结 …

交叉熵损失CrossEntropyLoss

交叉熵损失CrossEntropyLoss 语义分割网络输出tensor的尺寸为【B,C,H,W】,进行多分类&#xff0c;label的尺寸为【B,H,W】。 举例&#xff1a;三分类&#xff1a;output【1, 3&#xff0c;3, 3】&#xff0c;label【1, 3, 3】 验证 import torchoutput torch.tensor([[[[1, 1…

数据挖掘与数据分析之统计知识篇

1、自由度是什么&#xff1f;怎么确定&#xff1f; 统计学上&#xff0c;自由度是指当以样本的统计量估计总体的参数时&#xff0c;样本中独立或能自由变化的数据个数叫自由度。一般来说&#xff0c;自由度等于独立变量减掉其衍生量数。举例来说&#xff0c;变异数的定义是样本…

【Linux | Shell命令】Linux 环境变量

目录 一、概述二、什么是环境变量2.1 全局环境变量2.2 局部环境变量 三、设置用户自定义变量3.1 设置局部用户自定义变量3.2 设置全局环境变量3.3 删除环境变量 四、默认的 shell 环境变量五、5.1 设置 PATH 环境变量5.2 一、概述 Linux 系统中&#xff0c;很多程序和脚本通过环…

海康监控摄像机接入NTV GBS GB28181平台实现远程调取监控视频

海康威视各种型号监控摄像头或硬盘录像机(NVR/HVR)接入NTV GBS GB28181平台配置过程都非常简单明了&#xff0c;但有些细节需要注意&#xff0c;避免走弯路踩泥坑。 1、基本要求 1)网络要求 总体来说&#xff0c;只要监控设备和GB28181平台的网络是连通的&#xff0c;设备可以主…

ADS笔记,时域和频域绘图

为防止遗忘&#xff0c;记录一下ADS的时间域和频谱图的绘制 在ADS中想得到电路的时域和频域图的话&#xff0c;可以用谐波平衡仿真HB或者选择一个准瞬态仿真控制器插入到原理图中来实现。 目录 方法一&#xff1a;谐波平衡仿真HB时域设置频域设置 方法二&#xff1a;准瞬态仿…

2023 Navicat for Redis 与 Navicat Premium 16.2 现已正式发布 | 释放 Redis 全部潜能

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…