如何不编写 YAML 管理 Kubernetes 应用?

如何不编写 YAML 管理 Kubernetes 应用?

作者:郭逊 2022-09-02 15:38:06

云计算

云原生 当你的团队已经使用原生的 Kubernetes 一段时间,你多半会发现,并非每个 IT 技术人员都擅长编写复杂的 Kubernetes 声明式配置文件(YAML)。

Kubernetes 将自身边界内的事物都抽象为资源。其中的主要部分,是以 Deployment、StatefulSet 为代表的 workload 工作负载控制器,其他各类资源都围绕这些主要的资源工作。这些资源合并起来,可以为 IT 技术工作者展现出一个以 workload 为中心的模型。Kubernetes 中所有的资源,都通过声明式配置文件来编辑描述,一条条的 Yaml 字段定义,给了 IT 技术人员最大的自由度的同时,也对技术人员的能力提出了极高的要求。

通过应用模型简化Kubernetes管理

当你的团队已经使用原生的 Kubernetes 一段时间,你多半会发现,并非每个 IT 技术人员都擅长编写复杂的 Kubernetes 声明式配置文件(YAML)。特别是对于开发人员他们的主要职责是业务开发,学习和编写YAML会增加他们的负担,甚至会抵触使用。

开源项目Rainbond 是一个 云原生应用管理平台,它使用 以应用为中心 的设计模式。基于这一设计模式重新抽象出了比 workload 更高层次的应用模型。从使用的体验上不需要学习和编写YAML,实现业务应用的全生命周期管理。应用对应一个完整的业务系统,由若干个可以单独管理的服务组件组成,部署业务组件可以从源代码和容器镜像,通过“拖拉拽”的方式编辑服务调用关系。每一个服务组件,可以基于图形化界面定义使用常见的一些运维特征。在此基础之上,用户还可以利用应用模型这一核心概念,做出更多高级操作,如将整个业务系统以应用模板的形式发布出来,业务系统可以基于该模板一键安装/升级。在软件交付这个领域,这种能力十分有用,无论最终交付环境在线或离线,都可以基于应用模板进行快速交付,甚至个性化交付。

Rainbond 使用的应用模型,让开发人员关注应用和业务本身,更易于被人所接受。对裁剪后保留下来的运维特征通过图形界面展示和交互,极大的降低了使用的难度,通过应用模版绝大多数开发者不必编辑复杂声明式配置文件就可以顺畅使用 Kubernetes 了。

将Kubernetes的YAML转换成应用模型

整个转化的过程,可以概括为三个步骤:

  1. 对于开发人员最常用Workload,可以从源码和容器镜像向导式的自动生成,或导入已有YAML和运行应用,导入过程自动识别所有可转化的 Workload 类型资源,包括 Deployment、StatefulSet, Job、CronJob 类型。这些资源会被转化成应用模型,转化后会以服务组件的形式运行。
  2. 导入生成的服务组件后,基本的Workload属性通过界面就可以查看和编辑,如环境变量、镜像地址等。转化过程中会将识别到的高级Workload 属性添加给服务组件,以Key/Value 或 Yaml 形式查看和管理。
  3. 非 Workload 的资源类型,如 Secret、ServiceAccount、Role 等资源,会被分类识别和加载到应用界面的k8s资源 页面中,供操作人员以交互体验方式进行编辑。

可被纳管和转化的 高级Workload 属性包括:

属性名称

作用

nodeSelector

节点选择器:指定某种类型节点调度时使用。

labels

标签:用于为服务组件自定义标签以被选择器使用。

volumes

存储卷:用于定义不被 Rainbond 管理的卷类型的挂载。

volumeMounts

挂载卷:与 volumes 搭配使用,将卷挂载给容器。

affinity

亲和性:更高级的调度方式,包括节点亲和性和Pod亲和性。

tolerations

容忍度:与节点污点搭配使用,具备指定容忍度的Pod才可以调度到指定节点上。

serviceAccountName

服务账户名:为服务组件指定某个已存在的SA,使对应的Pod具备某些权限。

privileged

特权模式:名副其实的配置,非必要不开启。

env

环境变量:用于定义不被 Rainbond 管理的环境变量,支持引用操作。

值得注意的是,扩展后的 RAM 模型,依然能够发布为应用模板,供后续一键安装/升级/交付整套业务系统之用。

导入已有Kubernetes应用的测试和实践

以下测试是基于Rainbond v5.8进行的,为了测试 Kubernetes 已有应用导入,我计划使用已经在 wp 命名空间中部署完成的 Wordpress 建站系统来进行一次导入测试。这套系统由以下资源组成:

[root@localhost~]#kubectlgetsecret,service,deployment,statefulset,pod-nwp
NAMETYPEDATAAGE
secret/default-token-nq5rskubernetes.io/service-account-token327m
secret/mysql-secretOpaque227m
NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S) AGE
service/wordpressNodePort10.43.157.40<none>8080:30001/TCP5m19s
service/wp-mysqlClusterIP10.43.132.223<none>3306/TCP27m
NAMEREADYUP-TO-DATEAVAILABLEAGE
deployment.apps/wordpress1/1115m19s
NAMEREADYAGE
statefulset.apps/wp-mysql1/127m
NAMEREADYSTATUSRESTARTSAGE
pod/wordpress-66bc999449-qv97v1/1Running05m19s
pod/wp-mysql-01/1Running027m

访问 Rainbond ,在集群处选择导入,在这个页面中,可以选择要导入资源的命名空间 ​​wp​​。平台会根据 label 来对资源进行分组:

Rainbond 根据资源定义的 label 来划分应用,如符合 app.kubernetes.io/name:wp-mysql 或  app:wordpress 的资源,会分布到图中两个不同的应用中去,而不具备上述 label 的资源,则会统一划分到一个未分组的应用中去。应用的划分非常关键,因为应用模型的高级应用是针对一个应用整体而言的,所以导入之前一定要仔细规划,添加合理的 label。

导入过程中,Rainbond 将不同的属性,交由扩展后的模型管理,大部分运维操作已经变得很易用了,而另一部分,则交由 Kubernetes 属性页面进行管理。

一旦完成导入,wordpress 和 wp-mysql 两个应用就可以使用 Rainbond 进行管理了。

  • 端口管理

wordpress 在导入之前依靠 NodePort 类型的 Service 对外暴露,但导入 Rainbond 管理之后,就可以借助网关对外暴露自己的 80 端口了。需要注意的是,你必须重启一次 wordpress 服务组件,来让访问策略生效。

对于某些业务而言,访问的入口不支持动态指定,这就需要业务侧也做出一些改动,来适应新的访问入口。对于 Wordpress 而言,需要重新定义常规选项中的站点地址。

  • 存储管理

我部署的这套 wordpress 系统,所有组件的存储都使用的 hostpath 模式,这种配置虽说简单,但是并不适用于 Pod 可能发生漂移的大规模 Kubernetes 环境。Rainbond 部署后,会提供易用的共享存储,这种存储支持多个 Pod 间共享数据,以及 Pod 跨主机的迁移。原有的 hostpath 存储,可以重新进行定义。重新定义后的存储路径会变为空,所以记得找到新旧不同的路径,进行一次数据迁移。

实际意义

通过应用模型,让IT 技术人员可以更多的关心业务本身,而不是底层复杂工具的使用问题。最终的效果是简化操作成本和理解难度,让Kubernetes更加容易落地。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/248563.html<

(0)
管理的头像管理
上一篇2025-04-27 15:39
下一篇 2025-04-27 15:40

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注