本文概述
- 什么是Kubernetes?
- 为什么选择Kubernetes?
- Kubernetes功能
- Kubernetes术语
- Kubernetes和Docker
- Kubernetes与Docker
什么是Kubernetes? Kubernetes是负责容器编排的开源工具。它可以自动进行容器部署, 连续扩展和缩放, 容器负载平衡等。
文章图片
Google最初使用Go编程语言开发了Kubernetes。
目前, 它是协调容器的市场领导者。 Kubernetes是托管可动态扩展的微服务应用程序的理想平台。在生产环境中工作时, Kubernetes是用于容器编排的最优选和更安全的平台。
因为在生产环境中, 你预计停机时间为零, 所以群集应始终处于正常运行状态。
借助Google Cloud Platform(GCP), 你只需单击几下即可启动Kubernetes。其他云提供商(例如AWS和Azure)也支持它。并且, 有多个托管的Kubernetes平台可用。
为什么选择Kubernetes? 以前, 开发人员和测试人员之间的斗争是很平常的事情。
以前的环境不同。在开发人员系统上运行的功能未在测试仪系统上运行。
现在, 大多数组织都在使用容器, 由于环境的差异而出现的问题不再发生。
但是组织和运行多个容器也不是一件容易的事。在处理动态应用程序时, 按比例放大/缩小容器的数量是很正常的事情。手动执行此类任务可能很复杂且存在风险。因此, 需要一个容器编排工具, 这就是为什么需要Kubernetes的原因。
Kubernetes功能 有很多, 但以下是一些最好的。
#自动装箱
Kubernetes打包你的应用程序, 它会根据其需求和可用资源自动放置容器
#服务发现和负载平衡
文章图片
Kubernetes会自动将容器的IP地址和DNS名称分配给运行逻辑操作的容器。容器集之间还具有负载平衡功能。
#存储编排
Kubernetes会自动挂载你选择的存储系统。它可以是本地存储, 也可以是公共云提供商(例如AWS)。
#自我修复
每当Kubernetes意识到你的一个容器发生故障时, 它将自行重启该容器, 并创建一个新容器来代替崩溃的容器。万一你的节点发生故障, 在该节点上运行的容器将在集群中另一个正在运行的节点上启动。
#水平缩放
文章图片
你可以使用简单的命令快速扩展和缩小应用程序。可以在CLI上或通过Kubernetes仪表板运行简单命令。也可以自动缩放, 根据CPU使用情况, 你的容器将自动缩放。
#自动回滚和推出
只要你的应用程序有更新, Kubernetes就会逐步推出这些更改并更新应用程序或其配置。并非所有实例都同时更新, 因此可以确保高可用性。如果出现问题, Kubernetes将立即回滚所做的更改。
Kubernetes术语 在变脏之前, 你需要定期了解Kubernetes中使用的一些术语。
#下
它代表集群中运行的一个或多个容器。
#服务
访问pod /应用程序的抽象方法。
#命名空间
它用于删除集群中的名称冲突。它支持同一物理群集上的多个虚拟群集。
#节点
Kubernetes工作者机器。
#集群
由在Kubernetes上运行容器化应用程序的一组节点组成。
#注释
用于存储资源所需数据的标签。
#音量
这是容器访问容器中的数据目录。
#ReplicaSet
正在运行的Pod的多个副本。
# 标签
为Kubernetes对象命名, 以便可以在整个系统中对其进行识别。
#出生
它是在每个节点上运行的代理, 并检查容器是否在容器中运行。
#Kubectl
与Kubernetes API服务器进行交互的命令行实用程序。
#Kube-proxy
网络代理, 它包含集群中每个节点上的所有网络规则。
Kubernetes和Docker 现在你可能在想, Kubernetes与Docker有何不同。 Kubernetes与Docker这句话可能会产生误导。
Docker是一个将OS, 库和应用程序打包在容器内的平台。让我告诉你, Docker所做的与在Kubernetes中要做的相同。但是, 当你仅使用Docker时, 一切都是手动的。你需要手动启动和停止容器。但是有了Kubernetes, 一切都变得自动化了。
【Kubernetes初学者简介】Kubernetes可以调度包含容器的Pod, 然后Kubelet告诉Docker启动或停止容器。 Kubernetes中的Kubelet负责监视那些容器并在主节点上收集它们的信息。因此, 基本的区别在于, 在Kubernetes中, 管理员不是告诉管理员该怎么做, 而是全部自动化。
还有另一个用于容器编排的工具是Docker Swarm。那么, 它们之间有什么区别?
Kubernetes与Docker
州长 | Docker |
安装复杂 | 安装简单 |
更大的开源社区 | 与Kubernetes相比社区规模较小 |
可以轻松整理数百个容器 | 适合编排10-20个容器 |
Kubernetes仪表板提供GUI | 没有GUI |
支持自动缩放 | 不支持自动缩放 |
通过自动回滚支持滚动更新 | 支持滚动更新, 但不支持自动回滚 |
内置日志记录和监控 | 需要像ELK这样的第三方来进行记录和监视 |
可以与同一容器中的容器共享体积 | 可以与集群中的任何容器共享卷 |
我希望现在你对什么是Kubernetes及其如何有一个基本的了解。如果你学习DevOps或打算进入, 那么我建议你参加这门奇妙的Udemy课程来学习Kubernetes。
推荐阅读
- 如何在Ubuntu,CentOS,Debian和Windows上安装Docker()
- 10个被称为Sysadmin的Linux工具
- 了解Kubernetes架构
- 将Windows和MAC计算机备份到云的12种最佳服务
- Kubernetes仪表板
- 使用Application Insights监控应用程序性能
- Spring IoC容器-ApplicationContext
- Mapper 文件中SQL不等于的写法
- 在非NDK编译条件下使用Android Log函数