1

人人都会Kubernetes(一):告别手写K8s yaml,运维效率提升500% - 杜先生的博客

 5 months ago
source link: https://www.cnblogs.com/dukuan/p/17965101
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1. Kubernetes的普及和重要性

随着云计算的迅速发展,容器化技术已成为构建和运行分布式应用程序的关键。而Kubernetes作为容器编排领域的佼佼者,已经成为了云原生应用的标准。它不仅简化了应用程序的部署和管理,而且为开发者和运维人员提供了一套全面的工具集,从容器编排、自动扩缩容、服务发现到自修复等,满足了各种复杂的生产需求。无论你是开发人员、运维人员还是企业决策者,理解Kubernetes的重要性并掌握其技术,都将为项目和业务带来巨大的竞争优势。

2. Kubernetes的挑战

Kubernetes创建、更新、删除资源等操作,均是使用json或yaml文件进行管理,更新和删除可以依赖之前的文件进行更改,但是创建具有多变性,往往编辑起来比较复杂,容易出错。而且K8s的配置项实在太多,稍微不注意就会犯错。要写好一个yaml文件,你需要了解yaml的语法,需要掌握K8s的各种配置,对于一个k8s的初学者而言,这将是一件很难的事情。所以Kubernetes YAML文件的编写与维护是一项繁琐且容易出错的工作。

每个应用程序、服务或配置都需要精确的YAML语法,一旦出错,可能会导致资源无法正常创建或运行。此外,随着应用程序的复杂性和规模的增长,所需的YAML文件数量和复杂度也会急剧的增加。如果单靠人力去对文件做增删改查,这不仅增加了出错的可能性,而且管理和维护变得异常的困难。因此,使用一些自动化工具来生成和管理Kubernetes YAML文件成为了迫切的需求,它不仅可以大大提高工作效率,而且可以减少出错的可能性,让管理Kubernetes工作变得更加轻松和高效。

3. Kubernetes YAML文件图形化生成

当我们面临Kubernetes YAML文件编写的困难时,一个自动化的Kubernetes YAML生成工具的出现,就如同云原生时代的一场及时雨。它不仅解放了我们的双手,更提高了工作效率,减少了出错的可能性。

这个工具,就像一位贴心的助手,能够快速、准确地生成我们所需的YAML文件。不论是简单的部署还是复杂的微服务架构,它都能游刃有余地处理。

所以,为什么需要一个自动化的Kubernetes YAML生成工具?答案很简单,为了更高效的工作,更少的错误,以及更多的时间去做真正重要的事情。让我们告别手写Kubernetes YAML的时代,迈向运维效率提升500%的新篇章!

4.Kubernetes YAML在线生成工具KRM

今天给大家介绍一款可以无需安装就可以生成K8s yaml文件的工具————KRM

KRM是一个Kubernetes多集群资源管理平台,基于管理Kubernetes的资源开发,可以管理Kubernetes的Namespace、Deployment、DaemonSet、StatefulSet、Service、Ingress、Pods、Nodes、CronJob等,当然也可以无需安装生成自己想要的yaml文件。

KRM主要实现的是使用图形化界面管理所有的Kubernetes的资源,降低Kubernetes的复杂度。 同时具备了一些常用的功能,比如跨集群资源复制、一键项目迁移、图形化资源编辑、资源一键回滚及更新、多集群资源统计等。

KRM在线演示地址:http://demo.kubeasy.com/#/
登录后即可查看到KRM的首页————集群资源统计,可以所有集群的资源统计,比如节点总数量、Pod总数量等

1095387-20240115204906466-1719855452.png

5. KRM功能介绍

5.1 集群管理

1095387-20240115204928474-1655921208.png

在集群管理页面可以看到被KRM管理的集群列表、集群版本、集群状态及集群配置等,当点击集群ID时,可以查看当前集群资源统计信息,比如当前集群节点总数量、Pod总数量、Namespace总数量等

1095387-20240115204942449-2120607649.png

5.2 节点管理

1095387-20240115204953989-1457423461.png

节点管理页面可以看到每个集群的节点列表,并且可以展示每个节点的信息,比如主机名、IP地址、角色、节点状态等,同时可以对节点进行一键式操作,比如开启禁止调度和驱逐节点上的Pod等,另外点击操作的编辑可以对节点的标签和污点进行管理,点击操作的Pod按钮,可以查看当前节点运行了哪些Pod

1095387-20240115205004630-1980686904.png

当点击节点的主机名时,可以看到节点的详细信息

1095387-20240115205015363-314534505.png

5.3 命名空间管理

1095387-20240115205025437-1347260922.png

命名空间管理可以查看每个集群的Namespace的列表,同时可以对命名空间进行简单的管理,比如删除、编辑和资源复制等
点击资源复制可以把某个集群的Namespace里面的资源复制到另外一个集群

1095387-20240115205039995-476555028.png
1095387-20240115205046057-1845148388.png

点击Namespace的名称可以获取当前namespace的资源统计信息,比如Pod数量、Deployment数量等

1095387-20240115205057974-1822658477.png

5.4 调度资源管理

在调度资源管理页面可以管理Kubernetes常见的调度资源,比如Pod、Deployment、StatefulSet、DaemonSet、CronJob等

1095387-20240115205117210-1657714808.png
1095387-20240115205119835-469692763.png
1095387-20240115205124953-692476941.png

5.5 服务发布资源管理

服务发布管理页面可以管理集群中的Service和Ingress资源

1095387-20240115205143015-1034530313.png
1095387-20240115205148053-576509459.png
1095387-20240115205152074-854921581.png

5.6 配置管理和存储管理

配置管理和存储管理页面可以管理ConfigMap、Secret、PV、PVC等

1095387-20240115205208669-451880917.png
1095387-20240115205212966-1885169483.png

更多功能可以打开体验网站进行体验:http://demo.kubeasy.com/#/

6.使用KRM图形化生成YAML文件

KRM不仅可以直接生成YAML文件,还可以自行安装进行集群的管理,安装文档:https://github.com/dotbalo/krm/blob/main/deploy.md

如果不安装也可以使用
http://demo.kubeasy.com/
在线生成YAML文件

如果想要生产Deployment的YAML文件,可以点击调度资源-Deployment-创建

1095387-20240115205228486-1504518138.png

快速生成只需要输入Deployment名称及容器的镜像地址点击YAML即可生成YAML文件

1095387-20240115205236838-2071434345.png
1095387-20240115205241575-488080728.png
1095387-20240115205244907-1450909032.png

之后生成的YAML文件即可去使用。
如果想要更加详细的配置,可以自行添加配置

6.1 存储配置

1095387-20240115205255782-2064168963.png
1095387-20240115205300543-97479394.png

在存储配置中,可以添加一些常用的存储资源,比如EmptyDir、NFS、ConfigMap、Secret、PVC等

6.2 容器配置

1095387-20240115205309738-1721701337.png

容器配置中可以添加或者删除Pod中的容器,同时可以对容器的端口、健康检查、环境变量、生命周期及存储挂载配置等

1095387-20240115205327028-941491933.png
1095387-20240115205330759-1166126566.png
1095387-20240115205333945-869812370.png
1095387-20240115205337914-1462182887.png

KRM不仅可以在线生成YAML,还可以安装到自己的集群里面去管理自己的K8s集群,免去手动处理YAML的难度,不仅可以提升管理效率,还可以降低出错率,大家可以自行尝试~

更多功能正在不断完善中,大家可以关注:https://github.com/dotbalo/krm/
如果大家想要深度学习云原生、K8s、容器、DevOps、服务网格、Go、Vue知识可以关注:https://edu.51cto.com/lecturer/11062970.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK