初学者的Kubernetes圣经
Kubernetes旨在简化事情,本文旨在为您简化Kubernetes!Kubernetes是一个由Google开发的强大的开源系统。它是为在集群环境中管理容器化应用程序而开发的。Kubernetes已经获得了普及,并且正在成为在云上部署软件的新标准。
学习Kubernetes并不困难(如果导师很好),它提供了强大的能力。学习曲线有点陡峭。因此,让我们以简化的方式学习Kubernetes。本文介绍了Kubernetes的基本概念,架构,它是如何解决问题的等。
Kubernetes是什么?
实际上Kubernetes本身就是一个用于在多台机器上运行和协调应用程序的系统。该系统管理容器化应用程序和服务的生命周期。为了管理生命周期,它使用不同的方法来提高可预测性,可伸缩性和高可用性。
Kubernetes用户可以自由决定应用程序的运行和通信方式。还允许用户扩展/缩减服务,执行滚动更新,在不同应用程序版本之间切换流量等。Kubernetes还提供用于定义/管理应用程序的不同接口和平台原语。
Kubernetes硬件
Kubernetes需要不同类型的硬件。我们需要了解的是Kubernetes本身是不需要硬件的,但功能系统需要硬件。
Nodes
Kubernetes中的节点是什么?Kubernetes中最小的计算单位之一被称为节点。它是一台机器,位于一个集群中。节点不一定需要是物理机器或硬件的一部分。它可以是物理机器或虚拟机。对于数据中心,节点是物理机器。对于Google Cloud Platform,节点是虚拟机。目前,我们正在讨论Kubernetes的硬件,所以让我们相应地考虑一下。但是不要将节点限制为“硬件”。
Cluster
我们已经讨论了节点,对吗?他们似乎是小而可爱的处理单位。他们在自己的小房子里工作。所有这些听起来都很完美,但它还不是Kubernetes的方式!所以集群来了。您无需担心单个节点的状态,因为它们是集群的一部分。例如,如果单个节点表现不佳,则应该有人来管理所有这些。此外,集群是多个节点的集合。将所有节点的资源集中在一起,共同构成一个强大的机器。
Persistent Volumes
如上所述,程序在集群上运行并由节点提供支持。但它们不在特定节点上运行。程序动态地运行。因此,需要存储信息,并且不能将其随机存储在任何文件系统中。为什么?例如,程序将数据保存到文件中。但是后来,该程序被重新定位到另一个节点。下次程序需要该文件时,它不会在预期的位置。位置地址已经改变。为了解决这个问题,与每个节点相关的传统本地存储被认为是用于保存程序的临时缓存。但是,任何本地保存的数据都不会持续存在。
这是Kubernetes的硬件部分。 现在让我们转到软件部分。
Kubernetes软件
Kubernetes的整体概念基于软件。所以这是Kubernetes的主要部分。
Containers
在Kubernetes中,程序运行在Linux容器。这些容器基于预编译的镜像。镜像可以部署在Kubernetes上。你知道什么是容器化吗?它允许你创建Linux执行环境。
程序及其依赖项打包在单个镜像中,并在网上共享。因此,任何人都可以按照需求下载镜像并将其部署在基础设施上。只需一点设置即可轻松部署。可以在程序的帮助下创建容器。这使得能够形成有效的CI/CD管道。
容器能够处理多个程序。但建议每个容器限制一个进程,因为这有助于排除故障。更新容器很容易,如果它很小,部署也很容易。最好有许多小容器,而不是大容器。
Pod
Kubernetes有一些独特的特性,其中之一是它不直接运行容器。它将一个或多个容器包装成一个Pod。 Pod的理念是同一Pod中的任何容器使用相同的资源和相同的本地网络。
好处是容器可以容易地相互通信。它们是孤立的,但随时可以通信。
Pod可以在Kubernetes中复制。例如,应用程序变得流行并且单个Pod无法承受负载。此时,可以根据需要配置Kubernetes以部署Pod的新副本。
但是,只有在重负载期间才需要进行复制。Pod也可以在正常条件下复制。这有助于统一负载平衡和抵抗故障。
为避免这些,请将Pod限制为少数几个容器。如果你遇到过“sidecar”这个词,那就意味着辅助容器。所以有主进程容器,可能有一些辅助容器。
Depoloyment
添加Deployment之后,它会监控Pod的数量。同样,如果Pod不存在,则Deployment会重新创建它。
有趣的是,通过Deployment,可以无需处理Pod。 同时,通过声明系统状态,可以自动管理所有内容。
通过Ingress向成功进军
我们已经讨论了Kubernetes的所有基本概念。使用它们,你可以创建节点、集群。创建集群后,就可以在集群上启动Pod的部署。但是,你如何允许外部流量到你的应用程序?我们还没有讨论过这个问题。
有许多方法可以向集群添加Ingress。最常见的是通过Ingress Controller或负载均衡器。我们可以讨论这两种方法之间的区别,但目前不需要,因为它太具技术性。
现在,您应该了解Ingress对于尝试Kubernetes非常重要。虽然你其他都做得很对,但是如果你不考虑Ingress,你将无法到达任何地方!
Kubernetes如何解决问题?
在讨论了Kubernetes的部署部分之后,有必要了解Kubernetes的重要性。
容器编排和Kubernetes
容器是虚拟机。它们轻巧,可扩展且独立。容器放在一起需要设置安全策略,限制资源利用率等。如果您的应用程序基础结构类似于下面共享的镜像,则容器编排是必要的。
它可能是在几个容器上运行的Nginx/Apache + PHP/Python/Ruby/Node.js应用程序,通过数据库副本通讯。容器编排(Container orchestration)将帮助您自己管理所有内容。
现在,管理庞大的应用程序是不可能的,因为它会占用太多CPU和RAM。所以你最终决定将应用程序分成更小的块。他们每个人都有一个特定的任务。现在,你的基础架构如下所示:
在所有这些情况下,谁会来帮助你?是的,容器编排将成为你的救星!原因是容器编排功能非常强大,可以解决大部分挑战。
那有什么选择呢?
主要候选者是Kubernetes,AWS ECS和Docker Swarm。在所有这些中,Kubernetes是最受欢迎的!Kubernetes提供最大的社区。Kubernetes解决了所描述的所有主要问题。它是可移植的,可运行在大多数云提供商,裸机,混合环境以及所有这些的组合上。此外,它也是可配置和模块化的。它提供自动放置,自动重启,自动复制和容器自动修复等功能。
要点
最重要的是,Kubernetes拥有一个活跃的在线社区。这个社区的成员在网上以及在世界主要城市线下聚会。国际会议“KubeCon”已经证明是一个巨大的成功。Kubernetes还有一个官方的Slack小组。Google云平台,AWS,Azure,DigitalOcean等主要云提供商也提供其支持渠道。 你还在等什么?
本文转自DockOne-初学者的Kubernetes圣经
初学者的Kubernetes圣经相关推荐
- 初学者的Kubernetes圣经 1
在开始撰写本文之前,我想问你几个问题. 你或你的团队是否需要使用Kubernetes进行容器编排?你想学习Kubernetes是否很困惑从哪里开始? 你愿意改变你的组织吗?你想简化容器软件编排吗?然后 ...
- 【带你上手云原生体系】第四部分:Kubernetes 圣经 【完整生态、生产必备、一文精通、无需再学】大量图文请慎入
[带你上手云原生体系]第一部分:文章简介 及 云原生思维概览 [带你上手云原生体系]第二部分:Go语言从入门到精通 [带你上手云原生体系]第三部分:Docker从入门到精通 [带你上手云原生体系]第四 ...
- 适合 Kubernetes 初学者的一些实战练习(二)
本系列的第一篇文章,我们学习了每一个 Kubernetes 从业者的实际工作中几乎都会使用的步骤:创建 Deployment 和 Service,同时通过实际例子讲解了 Pod 和 Service 绑 ...
- Kubernetes初体验
2019独角兽企业重金招聘Python工程师标准>>> 专辑文档: 最近了解了一下Kubernetes,发现对于一个新手想要先简单体验一下Kubernetes,还是会遇到非常多的问题 ...
- k8s 查看ip地址属于哪个pod_一个简单的例子理解Kubernetes的三种IP地址类型
很多Kubernetes的初学者对Kubernetes里面三种不同的IP地址和工作机制理解得不是很清楚. 本文我们通过一个最简单的例子来学习. 用如下命令行创建一个基于nginx的deployment ...
- 如何部署一个Kubernetes集群
来源 | 无敌码农 责编 | 寇雪芹 头图 | 下载于视觉中国 在上一篇文章<Kubernetes和Docker的关系是什么?>中,和大家分享了关于Kubernetes的基本系统架构以及关 ...
- 内网环境下手动部署kubernetes(v1.26.3)高可用集群
这篇博客主要是记录了手动部署一个高可用的Kubernetes集群的过程.旨在帮助自己及初学者学习kubernetes,并记录下具体的操作过程和总结的知识点.文中可能存在一些问题或不足之处,仅供参考. ...
- 迎难而上,做云原生时代的弄潮儿:搞定 Kubernetes
作者罗剑锋,网名"Chrono",Kong 高级工程师,Nginx/OpenResty 开源项目贡献者,也是极客时间<透视HTTP协议><罗剑锋的C++实战笔记& ...
- 收藏!2022中小企业最佳DevOps工具
中小企业最佳DevOps工具 文章目录 中小企业最佳DevOps工具 最佳DevOps工具一览 EKS(腾讯云)容器编排集群 Harbor镜像仓库 Rancher可视化管理K8S集群 Kubesphe ...
最新文章
- 【ESP8266】使用ESP8266 NONOS SDK的JSON API
- Linux系统调用的运行过程【转】
- 连州技工学校学计算机要交多少学费,技校学费一年大约需要多少
- thread java 关闭_怎么在java中关闭一个thread
- 转载给ffmpeg入门级:我的第一个调用FFmpeg库的程序出炉
- 页面图片延时加载(附实例下载)
- Spring mvc项目导出jar包无法识别正常映射问题
- Oracle 11g 频繁遭遇 CheckPoint incomplete问题分析(直播预告)
- 【转】Unity3D研究院之设置自动旋转屏幕默认旋转方向
- 4.算法优化 -高性能JavaScript
- Azure PaaS服务密钥的安全性
- [转]Git使用基础篇
- Matlab中return语句
- Stata: 实时估计个股贝塔(beta)系数
- Tableau学习摘录总结①(层次、聚合度和颗粒度层次、聚合度和颗粒度,字段(离散和连续),小建议)
- 在脉脉匿名频道上看了这些公司的评价后,这里有几个结论
- 什么是测评认证 转自藏锋者
- 留存分析_游戏数据分析
- SpringBoot项目访问jsp页面500问题处理
- linux从视频中提取音乐,Linux下从电影(avi)中提取声音