Kubernetes:快速入门指南

原文作者:NGINX

原文链接:Kubernetes:快速入门指南

转载来源:NGINX 官方网站


NGINX 唯一中文官方社区 ,尽在 nginx.org.cn

什么是 Kubernetes?

Kubernetes又称为 k8s,是一个开源平台,用于实现容器化应用和工作负载部署、扩展和管理的自动化与编排。它为在内部、云和边缘等任何环境中以容器形式运行的应用提供了具有内置灵活性、可扩展性、可靠性、高可用性和可移植性的计算基础设施。

Kubernetes 可自动处理与大规模管理容器化工作负载相关的最常见任务,包括部署、负载均衡、横向扩展、发布和回滚以及自我修复。

许多组织已经在生产环境中使用 Kubernetes(支持的应用有少有多),还有一些组织正在对这一技术进行评估。由于其普及性,Kubernetes 已成为容器编排和管理领域的事实标准。

Kubernetes 的优势

Kubernetes 正快速普及,因为它可以帮助:

  • 加快和简化应用发布周期

  • 实现跨公有云、私有云和混合云以及多云环境的工作负载可移植性

  • 提高资源利用效率

  • 轻松实现可扩展性和做好生产准备

  • 优化环境以满足业务服务级别协议 (SLA)

Kubernetes 和微服务

将传统的单体应用重构为更小的松散耦合部分,即微服务,可加快新应用特性和更新发布速度并简化扩展,从而帮助提高业务敏捷性。云原生微服务架构的采用推动了对底层计算基础架构的演进需求,我们发现,从物理系统和虚拟机过渡到容器是运行微服务的最有效方式之一。

随着微服务和容器数量的增加,对容器管理自动化的需求也不断增长。Kubernetes 可帮助满足这一需求。

Kubernetes vs. Docker

Kubernetes 能够大规模地编排和运行容器化应用;但它无法将应用代码打包成容器化格式以进行分发和执行(容器镜像包括应用代码和必要的运行时、库及其他软件依赖项)。为了运行 pod,Kubernetes 还要求必须在每个节点上安装容器运行时

Kubernetes 最初使用Docker Engine作为容器运行时。但从 Kubernetes 1.24 开始,容器运行时必须符合容器运行时接口 (CRI) 标准,而 Docker Engine 不满足这一要求。CRI-O 和containerd(最初是一个 Docker 项目)是两个常用的符合 CRI 标准的容器运行时。

要将应用打包成容器,您需要一个像Docker 这样的工具。Docker 是构建、共享和运行容器化应用的最常用工具之一。它实现了将应用打包成可移植容器镜像操作的简化和自动化,这些容器镜像可随时在内部和云平台上(包括在 Kubernetes 环境中)执行和部署。Docker 打包容器能够在 containerd 和 CRI-O 运行时上原生运行。

Kubernetes 架构

Kubernetes 平台由一组节点组成,这些节点相互连接构成集群,共享池化计算资源。每个集群都管理着许多 pod,pod 是 Kubernetes 架构中最小的可部署单位。

一个 pod 包含一个或多个应用容器。多个 pod 组合构成一个服务。可通过多种方法从外部访问 Kubernetes 集群内的应用,其中Ingress controller(Ingress 控制器)是最流行、最高效的方法之一。

下面让我们来详细了解一下 Kubernetes 环境中的组件:

Kubernetes Pod

Kubernetes pod 是可以在 Kubernetes 中部署的最小可执行单元。Pod 是一个或多个应用容器镜像的“虚拟主机”(就像传统应用的物理服务器或虚拟机),它封装了一个或多个共享相同的计算、存储和网络资源(因此可以被视为是相对紧密地耦合)的容器。Pod 在 Kubernetes 节点上部署和执行。

Kubernetes 节点

Kubernetes 节点是计算基础设施的最小单位。节点可以是虚拟机或物理服务器,分配处理器、内存、存储和网络资源以部署、运行、扩展和管理 pod。多个节点相互连接构成一个集群。

Kubernetes 集群

Kubernetes 集群由一组节点组成,这些节点跨 pod 共享池化计算资源。集群中有两种节点:

  • 工作节点——运行 pod 中的容器化应用

  • 主节点——运行 Kubernetes 控制平面,编排和管理工作节点和 pod。

通常情况下,在 Kubernetes 集群中每种类型的节点都不止一个,以此来保障可用性和容错能力。

Kubernetes deployment

Kubernetes的deployment 描述了如何在集群中将应用作为一组 pod 副本(或实例)运行。Deployment 定义了:

  • 要运行的 pod 副本的数量。

  • 如何逐步部署 pod 更新

  • 如何将 pod 副本回滚到之前的状态

  • 如何横向扩展 pod 副本

Kubernetes 中的应用互联

Kubernetes 支持 IPv4/IPv6 双协议栈,为在集群中运行的容器化应用提供网络连通性。与 Kubernetes 集群内应用的通信以及集群内服务之间的通信都是在四层(IP 地址、端口)和七层(主机名、通用资源标识符 [URI])进行管理,包含路由、负载均衡、安全防护、监控和可视化功能。

Kubernetes 网络

在 Kubernetes 网络模型中,每个 pod 都有一个唯一 IP 地址,该地址从集群的私有地址池动态分配。同一集群中的所有节点上运行的全部 pod 都属于同一个 IP 网络,可通过该网络相互通信。Pod 内的多个容器通过环回接口彼此通信。

Kubernetes service

Kubernetes service 让集群中作为一个或多个 pod 运行的应用或微服务可在网络上访问(即所谓的“暴露”)。

关于此处内容,您可以点击文章《Kubernetes:快速入门指南》进行查看。

Kubernetes 安全防护

Kubernetes 安全防护采用分层方法来保护基础架构(内部和云计算资源、网络通信和管理平面)以及在 Kubernetes 集群内运行的应用。

为了确保基础架构的安全,请遵循通用安全防护建议、教程和最佳实践来保护云端和本地私有的实施部署。

要想保护应用,可以在边缘和 Kubernetes 集群内实施强大的安全防护控制,以提供身份验证、授权、访问控制、加密、监控和可视化能力,并为进出集群及集群内的所有通信提供可选的 Web 应用防火墙和拒绝服务防护。

生产环境中的应用

在 Kubernetes 的早期采用阶段,自己动手 (DIY) 方法占主导地位,但对许多组织来说,这种方法太过复杂,难以构建和操作。因此,对于生产部署,组织正在采用云托管的 Kubernetes 平台和预打包的 Kubernetes 发行版——它们集成了各种技术组件,简化了维护生命周期,并可跨混合和多云环境部署。

NGINX 如何助您一臂之力

NGINX Kubernetes 原生应用连接栈可通过降低复杂性,延长正常运行时间,并提供内部、云和边缘运行的 Kubernetes 应用的实时、详尽可视化信息,帮助改善客户体验。

  • Kubernetes 互联套件 —— 跨混合多云环境扩展、观测、治理和保护 Kubernetes 应用。

  • NGINX Ingress Controller —— 利用 API 网关、身份和可观测性功能来管理 Kubernetes 集群边缘的应用互联

  • NGINX Service Mesh—— 一款开发人员友好型解决方案,可确保 service 到 service 连通性、安全防护、可观测性和灵活编排


NGINX 唯一中文官方社区 ,尽在nginx.org.cn

更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源:

  • 开源社区官网:https://www.nginx.org.cn/
  • 微信公众号:https://mp.weixin.qq.com/s/XVE5yvDbmJtpV2alsIFwJg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18843.html

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

相关文章

Java虚拟机(JVM)

Java虚拟机(JVM) 类加载 类加载 Java类加载的过程可以分为以下几个步骤: 加载(Loading):类加载的第一步是将类的字节码文件加载到内存中。 通过类的全名,全限定名(包括包名和类名&…

【STM32MP135】移除stm32mp135d-atk-u-boot.dtsi设备树config节点,否则会进入fastboot下载模式

文件路径:u-boot-stm32mp-v2021.10-stm32mp1-r1/arch/arm/dts/stm32mp135d-atk-u-boot.dtsi

flutter开发实战-Theme主题切换

flutter开发实战-Theme主题切换 之前做的应用中有用到Theme主题切换&#xff0c;一直没有整理&#xff0c;这里整理一下。 使用的是Android studio 一、效果图 二、创建ThemeModel // 提供五套可选主题色 const _themes <MaterialColor>[Colors.blue,Colors.cyan,Co…

PWM 输出实验(stm32)

目录 PWM的代码pwm.cpwm.h main.c 说明&#xff1a;以下内容参考正点原子的资料 PWM的代码 pwm.c //TIM3 PWM部分初始化 //PWM输出初始化 //arr&#xff1a;自动重装值 //psc&#xff1a;时钟预分频数 void TIM3_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitSt…

C语言进阶之字符串函数和内存函数的介绍及部分函数的模拟实现

字符串函数和内存函数 1.字符串函数介绍1.1 strlen1.2 strcpy1.3 strcat1.4 strcmp1.5 strncpy1.6 strncat1.7 strncpy1.8 strstr1.9 strtok1.10 strerror1.11 字符分类函数 2.内存函数2.1 memcpy2.2 memmove2.3 memcmp 3.函数的模拟实现3.1 模拟实现strlen3.2 模拟实现strcpy3…

单片机第一季:零基础4——LED点阵

1&#xff0c;第八章-LED点阵 如何驱动LED点阵&#xff1a; (1)单片机端口直接驱动。要驱动8*8的点阵需要2个IO端口&#xff08;16个IO口&#xff09;、要驱动16*16的点阵需要4个IO端口&#xff08;32个IO口&#xff09;。 (2)使用串转并移位锁存器驱动。要驱动16*16点阵只需要…

网安学习经历小记

明明自觉学会了不少知识&#xff0c;可真正开始做题时&#xff0c;却还是出现了“一支笔&#xff0c;一双手&#xff0c;一道力扣&#xff08;Leetcode&#xff09;做一宿”的窘境&#xff1f;你是否也有过这样的经历&#xff0c;题型不算很难&#xff0c;看题解也能弄明白&…

漏洞攻击 --- TCP -- 半开攻击、RST攻击

TCP半开攻击&#xff08;半连接攻击&#xff09; --- syn攻击 &#xff08;1&#xff09;定义&#xff1a; sys 攻击数据是DOS攻击的一种&#xff0c;利用TCP协议缺陷&#xff0c;发送大量的半连接请求&#xff0c;耗费CPU和内存资源&#xff0c;发生在TCP三次握手中。 A向B…

已解决 BrokenPipeError: [Errno 32] Broken pipe

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

zabbix server is not running错误解决方法

1.错误&#xff1a;zabbix server is not running 打开zabbix server的时候&#xff0c;底部飘着一行黄色的警告字 2.解决方法 (1)关闭selinux (2)查看日志文件 #tail -f /var/log/zabbix/zabbix_server.log 发现内存溢出了 __zbx_mem_realloc(): out of memory 那…

【小沐学C++】libcurl实现HTTP/HTTPS请求

文章目录 1、简介2、下载和编译2.1 下载2.2 编译2.3 使用 3、命令行测试3.1 获取文件头Headers3.2 请求内容Request Content3.3 响应内容Response Content3.4 GET请求3.5 POST请求3.6 其他 4、代码测试3.1 simple.c3.2 url2file.c3.3 simplepost.c3.4 resolve.c3.5 progressfun…

uniapp 集成 Android Studio 使用原生插件

uniapp 集成 Android Studio 使用原生插件 前期工作 下载 Android Studio下载 HbuilderX 对应的 App离线SDK 准备集成 打开选中项目选中其中的模块文件夹在该文件夹下的libs目录下添加需要使用的jar包&#xff08;一般是第三方设备平台提供&#xff09;在该文件夹下的src\m…