文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

五个重要的 Kubernetes 概念让学习变得简单

2024-12-01 14:35

关注

开始使用 Kubernetes并不容易。

本文将帮助您了解 Kubernetes 的一些最重要的概念。

1.为什么我们需要容器编排?

大多数企业都在采用微服务架构。

微服务提供了创新的灵活性。

然而,微服务并不是免费的。我们没有部署几个应用程序,而是部署了数百个微服务。这导致复杂性增加。

容器可以帮助简化您的部署和可观察性挑战。但是,在管理基础架构和部署方面仍然存在挑战。示例:我想要 10 个微服务 A 容器实例,15 个微服务 B 容器实例,......等等多个微服务。此外,我的微服务还需要一些其他功能。一些典型特征包括:

2.什么是容器编排?

容器编排解决方案提供了微服务架构所需的大部分技术特性。您将能够创建一个包含多个 VM 实例的集群并将微服务部署到该集群。容器编排解决方案将管理集群和部署。

3.什么是 Kubernetes?

有许多容器编排平台:Docker Swarm、Mesosphere 和 Kubernetes 等。在过去的几年里,Kubernetes 已经成为容器编排领域的赢家。

4.什么是最重要的 Kubernetes 概念?

假设您想使用 Kubernetes 建立一个微服务架构。以下是工作流程的样子:

现在让我们深入研究其中的每一个。

4.1 什么是集群?

集群是一组虚拟机。在集群中,有两种类型的节点:

以下是一些重要的主节点(控制平面)组件:

工作节点的工作是运行您的微服务。此外,一个名为 Kubelet 的 Kubernetes 组件在每个 pod 上运行。Kubelet 使工作节点能够与主节点通信。

4.2 让我们部署一个微服务

假设我要部署微服务 A 的 V1 的 5 个实例。发出创建部署并为其设置多个实例的命令类似于您在下面看到的:

**create deployment** hello-world-rest-api --image=in28min/hello-world-rest-api:0.0.1.RELEASE
scale deployment hello-world-rest-api --replicas=5

这会将具有 5 个实例的微服务 A 的 v1 部署到 Kubernetes 集群。

在内部,Kubernetes 将创建

为什么 Kubernetes 会这样做?

让我们深入挖掘。

4.3 什么是 Pod?

Pod 是 Kubernetes 中最小的可部署单元。一个 pod 代表你的微服务的一个实例。每个 Pod 都分配有一个临时IP 地址。

如果我在 Kubernetes 集群中运行 10 个微服务 A 实例和 12 个微服务 B 实例,那么我总共将运行 10 + 12 = 22 个 Pod。

4.4 什么是ReplicaSet?

我们将具有 5 个实例的微服务 A 部署到 Kubernetes 集群。这意味着您有 5 个 pod 正在运行。假设你杀死了一个豆荚。Kubernetes 会自动识别这一点并创建一个替换 pod。Kubernetes 监控您的 pod 的健康状况并替换不健康的 pod。Kubernetes 如何做到这一点?

这是 ReplicaSet 的工作。

ReplicaSet 确保指定数量的 pod 始终在运行。在上面的例子中,一个 ReplicaSet 确保了微服务 A 的 5 个实例始终在运行。

4.5 什么是部署?

如果一个 ReplicaSet 保证了特定数量的 pod,那么 Deployment 的作用是什么?

部署可确保您在发布微服务的新版本时具有灵活性。

部署代表微服务的所有版本。

目前,我们只有一个版本的微服务。但是,您可以部署新版本。比方说,我想在不停机的情况下部署微服务 V2。

这就是部署的工作。

当您部署现有微服务的新版本时,部署将为微服务 A 的 V2 创建一个新的 ReplicaSet。

你将会有:

部署英国

4.6 快速回顾 - 部署与副本集

kubectl create deployment microservice1 --image=microservice1:v1​

为每个微服务创建一个部署。Deployment 代表一个微服务(及其所有版本)。部署管理新版本,确保零停机时间。

副本集确保为特定微服务版本运行特定数量的 pod 。即使其中一个 pod 被杀死,副本集也会启动一个新的。

kubectl set image deployment microservice1 microservice1=microservice1:v2​

当你部署一个 V2 的微服务时,会创建一个新的 ReplicaSet(V2 ReplicaSet)。

部署根据配置的发布策略更新 V1 副本集和 V2 副本集。

4.7 什么是服务?

在 Kubernetes 中,每个 Pod 都有自己的 IP 地址。在以下情况下,您如何确保外部用户不受影响:

解决方案:创建一个服务。

expose deployment name --type=LoadBalancer --port=80

服务使用稳定的 IP 地址将您的部署暴露给外部世界。这可确保您的用户不会在 pod 上下移动时受到影响。

服务分为三类:

5.接下来的步骤

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯