人人都会Kubernetes(一):告别手写K8s yaml,运维效率提升500%
<h1 id="1-kubernetes的普及和重要性">1. Kubernetes的普及和重要性</h1><p>随着云计算的迅速发展,容器化技术已成为构建和运行分布式应用程序的关键。而Kubernetes作为容器编排领域的佼佼者,已经成为了云原生应用的标准。它不仅简化了应用程序的部署和管理,而且为开发者和运维人员提供了一套全面的工具集,从容器编排、自动扩缩容、服务发现到自修复等,满足了各种复杂的生产需求。无论你是开发人员、运维人员还是企业决策者,理解Kubernetes的重要性并掌握其技术,都将为项目和业务带来巨大的竞争优势。</p>
<h1 id="2-kubernetes的挑战">2. Kubernetes的挑战</h1>
<p>Kubernetes创建、更新、删除资源等操作,均是使用json或yaml文件进行管理,更新和删除可以依赖之前的文件进行更改,但是创建具有多变性,往往编辑起来比较复杂,容易出错。而且K8s的配置项实在太多,稍微不注意就会犯错。要写好一个yaml文件,你需要了解yaml的语法,需要掌握K8s的各种配置,对于一个k8s的初学者而言,这将是一件很难的事情。所以Kubernetes YAML文件的编写与维护是一项繁琐且容易出错的工作。</p>
<p>每个应用程序、服务或配置都需要精确的YAML语法,一旦出错,可能会导致资源无法正常创建或运行。此外,随着应用程序的复杂性和规模的增长,所需的YAML文件数量和复杂度也会急剧的增加。如果单靠人力去对文件做增删改查,这不仅增加了出错的可能性,而且管理和维护变得异常的困难。因此,使用一些自动化工具来生成和管理Kubernetes YAML文件成为了迫切的需求,它不仅可以大大提高工作效率,而且可以减少出错的可能性,让管理Kubernetes工作变得更加轻松和高效。</p>
<h1 id="3-kubernetes-yaml文件图形化生成">3. Kubernetes YAML文件图形化生成</h1>
<p>当我们面临Kubernetes YAML文件编写的困难时,一个自动化的Kubernetes YAML生成工具的出现,就如同云原生时代的一场及时雨。它不仅解放了我们的双手,更提高了工作效率,减少了出错的可能性。</p>
<p>这个工具,就像一位贴心的助手,能够快速、准确地生成我们所需的YAML文件。不论是简单的部署还是复杂的微服务架构,它都能游刃有余地处理。</p>
<p>所以,为什么需要一个自动化的Kubernetes YAML生成工具?答案很简单,为了更高效的工作,更少的错误,以及更多的时间去做真正重要的事情。让我们告别手写Kubernetes YAML的时代,迈向运维效率提升500%的新篇章!</p>
<h1 id="4kubernetes-yaml在线生成工具krm">4.Kubernetes YAML在线生成工具KRM</h1>
<p>今天给大家介绍一款可以无需安装就可以生成K8s yaml文件的工具————KRM。</p>
<p>KRM是一个Kubernetes多集群资源管理平台,基于管理Kubernetes的资源开发,可以管理Kubernetes的Namespace、Deployment、DaemonSet、StatefulSet、Service、Ingress、Pods、Nodes、CronJob等,当然也可以无需安装生成自己想要的yaml文件。</p>
<p>KRM主要实现的是使用图形化界面管理所有的Kubernetes的资源,降低Kubernetes的复杂度。 同时具备了一些常用的功能,比如跨集群资源复制、一键项目迁移、图形化资源编辑、资源一键回滚及更新、多集群资源统计等。</p>
<p>KRM在线演示地址:http://demo.kubeasy.com/#/<br>
登录后即可查看到KRM的首页————集群资源统计,可以所有集群的资源统计,比如节点总数量、Pod总数量等<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115204906466-1719855452.png"></p>
<h1 id="5-krm功能介绍">5. KRM功能介绍</h1>
<h2 id="51-集群管理">5.1 集群管理</h2>
<p><img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115204928474-1655921208.png"></p>
<p>在集群管理页面可以看到被KRM管理的集群列表、集群版本、集群状态及集群配置等,当点击集群ID时,可以查看当前集群资源统计信息,比如当前集群节点总数量、Pod总数量、Namespace总数量等<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115204942449-2120607649.png"></p>
<h2 id="52-节点管理">5.2 节点管理</h2>
<p><img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115204953989-1457423461.png"></p>
<p>节点管理页面可以看到每个集群的节点列表,并且可以展示每个节点的信息,比如主机名、IP地址、角色、节点状态等,同时可以对节点进行一键式操作,比如开启禁止调度和驱逐节点上的Pod等,另外点击操作的编辑可以对节点的标签和污点进行管理,点击操作的Pod按钮,可以查看当前节点运行了哪些Pod<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205004630-1980686904.png"></p>
<p>当点击节点的主机名时,可以看到节点的详细信息<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205015363-314534505.png"></p>
<h2 id="53-命名空间管理">5.3 命名空间管理</h2>
<p><img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205025437-1347260922.png"></p>
<p>命名空间管理可以查看每个集群的Namespace的列表,同时可以对命名空间进行简单的管理,比如删除、编辑和资源复制等<br>
点击资源复制可以把某个集群的Namespace里面的资源复制到另外一个集群<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205039995-476555028.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205046057-1845148388.png"></p>
<p>点击Namespace的名称可以获取当前namespace的资源统计信息,比如Pod数量、Deployment数量等<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205057974-1822658477.png"></p>
<h2 id="54-调度资源管理">5.4 调度资源管理</h2>
<p>在调度资源管理页面可以管理Kubernetes常见的调度资源,比如Pod、Deployment、StatefulSet、DaemonSet、CronJob等<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205117210-1657714808.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205119835-469692763.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205124953-692476941.png"></p>
<h2 id="55-服务发布资源管理">5.5 服务发布资源管理</h2>
<p>服务发布管理页面可以管理集群中的Service和Ingress资源<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205143015-1034530313.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205148053-576509459.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205152074-854921581.png"></p>
<h2 id="56-配置管理和存储管理">5.6 配置管理和存储管理</h2>
<p>配置管理和存储管理页面可以管理ConfigMap、Secret、PV、PVC等<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205208669-451880917.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205212966-1885169483.png"></p>
<p>更多功能可以打开体验网站进行体验:http://demo.kubeasy.com/#/</p>
<h1 id="6使用krm图形化生成yaml文件">6.使用KRM图形化生成YAML文件</h1>
<p>KRM不仅可以直接生成YAML文件,还可以自行安装进行集群的管理,安装文档:https://github.com/dotbalo/krm/blob/main/deploy.md</p>
<p>如果不安装也可以使用<br>
http://demo.kubeasy.com/<br>
在线生成YAML文件</p>
<p>如果想要生产Deployment的YAML文件,可以点击调度资源-Deployment-创建<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205228486-1504518138.png"></p>
<p>快速生成只需要输入Deployment名称及容器的镜像地址点击YAML即可生成YAML文件<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205236838-2071434345.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205241575-488080728.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205244907-1450909032.png"></p>
<p>之后生成的YAML文件即可去使用。<br>
如果想要更加详细的配置,可以自行添加配置</p>
<h2 id="61-存储配置">6.1 存储配置</h2>
<p><img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205255782-2064168963.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205300543-97479394.png"></p>
<p>在存储配置中,可以添加一些常用的存储资源,比如EmptyDir、NFS、ConfigMap、Secret、PVC等</p>
<h2 id="62-容器配置">6.2 容器配置</h2>
<p><img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205309738-1721701337.png"></p>
<p>容器配置中可以添加或者删除Pod中的容器,同时可以对容器的端口、健康检查、环境变量、生命周期及存储挂载配置等<br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205327028-941491933.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205330759-1166126566.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205333945-869812370.png"><br>
<img src="https://img2024.cnblogs.com/blog/1095387/202401/1095387-20240115205337914-1462182887.png"></p>
<h1 id="7-总结">7. 总结</h1>
<p>KRM不仅可以在线生成YAML,还可以安装到自己的集群里面去管理自己的K8s集群,免去手动处理YAML的难度,不仅可以提升管理效率,还可以降低出错率,大家可以自行尝试~</p>
<p>更多功能正在不断完善中,大家可以关注:https://github.com/dotbalo/krm/<br>
如果大家想要深度学习云原生、K8s、容器、DevOps、服务网格、Go、Vue知识可以关注:https://edu.51cto.com/lecturer/11062970.html</p><br><br>
来源:https://www.cnblogs.com/dukuan/p/17965101
頁:
[1]