Kubernetes新手必看:快速生成YAML清单的终极指南!

在这篇文章中,你将学习到几种快速创建Kubernetes YAML清单的方法,这些方法可以帮助你在Kubernetes中测试和部署应用程序。这些技巧同样适用于Kubernetes认证考试。

在使用Kubernetes时,我们经常需要搜索Kubernetes YAML文件以便部署测试Pod、Deployment或其他对象。毕竟,没人愿意每次都手动编写YAML文件的每一行,对吧?

让我们来看看一些简化YAML创建过程的Kubernetes技巧。

使用Kubernetes扩展自动生成YAML

最简单的创建Kubernetes YAML文件的方法之一是使用Visual Studio的Kubernetes扩展。

安装Kubernetes VS Code[1]扩展,它将帮助你为大多数Kubernetes对象开发YAML清单。它还支持将应用程序部署到本地和远程的Kubernetes集群。

你只需开始输入对象名称,扩展就会自动为你填充选项。然后,根据你的选择,它会自动生成基本的YAML结构,如下图所示。

该扩展支持生成PodDeploymentStatefulSetReplicationSetPersistent Volume (PV)Persistent Volume Claim (PVC)等对象的YAML文件。

使用Kubectl Dry Run 创建YAML清单

你可以使用kubectl命令创建YAML清单。这里有一个--dry-run标志,可以帮助你创建整个清单模板。

不过,你不能通过dry-run创建所有的Kubernetes资源YAML。例如,你不能使用dry-run创建StatefulSet或持久卷。

注意:如果你正在准备Kubernetes认证如CKA、CKAD或CKS,命令行操作在考试中非常有用。

Kubectl YAML Dry Run 示例

以下是一些使用干运行生成YAML并写入输出文件的示例。

创建Pod YAML

创建一个名为myapp的Pod YAML,使用nginx:latest镜像。

kubectl run mypod --image=nginx:latest \
            --labels type=web \
            --dry-run=client -o yaml > mypod.yaml
创建Pod服务YAML

为一个Pod服务生成YAML,暴露一个NodePort。这仅在你有一个运行中的Pod时有效。

kubectl expose pod mypod \
    --port=80 \
    --name mypod-service \
    --type=NodePort \
    --dry-run=client -o yaml > mypod-service.yaml
创建NodePort服务YAML

创建一个NodePort类型的服务,端口30001,并将服务映射到Pod的TCP端口80。

kubectl create service nodeport mypod \
    --tcp=80:80 \
    --node-port=30001 \
    --dry-run=client -o yaml > mypod-service.yaml
创建Deployment YAML

创建一个名为mydeployment的Deployment,使用nginx镜像。

kubectl create deployment mydeployment \
    --image=nginx:latest \
    --dry-run=client -o yaml > mydeployment.yaml
创建Deployment服务YAML

为Deployment mydeployment创建一个NodePort服务YAML,服务端口8080。

kubectl expose deployment mydeployment \
    --type=NodePort \
    --port=8080 \
    --name=mydeployment-service \
    --dry-run=client -o yaml > mydeployment-service.yaml
创建Job YAML

创建一个名为myjob的Job,使用nginx镜像。

kubectl create job myjob \
    --image=nginx:latest \
    --dry-run=client -o yaml
创建Cronjob YAML

创建一个名为mycronjob的Cronjob,使用nginx镜像和一个cron时间表。

kubectl create cj mycronjob \
    --image=nginx:latest \
    --schedule="* * * * *" \
    --dry-run=client -o yaml

以上是一些通用的YAML示例。你可以根据需求进一步修改这些参数并使用它们。

Kubectl和dry-run别名

为了加快操作速度,你可以在~/.bashrc~/.zshrc中设置kubectl命令的别名。这样你就不必每次都输入kubectl了。

alias k=kubectl

你还可以为kubectl --dry-run参数设置一个别名。

alias kdr='kubectl --dry-run=client -o yaml'

然后你可以按如下方式执行命令。

kdr run web --image=nginx:latest > nginx.yaml

总结

这篇本文章介绍了两种快速生成Kubernetes YAML清单的方法:使用Visual Studio的Kubernetes扩展和通过kubectl命令结合--dry-run标志。前者适合图形界面操作,后者适用于命令行生成,尤其有助于Kubernetes认证考试。这些技巧简化了创建Pod、Deployment、Service等对象的过程,提高了开发效率。

Reference[1]

Kubernetes VS Code: https://code.visualstudio.com/docs/azure/kubernetes


相关推荐

  • 记一次疑似JVM内存泄漏的排查过程
  • 高中信息技术考试竟然有Flash、IIS、Frontpage、Access、VB……
  • 带您认识物联网首选协议MQTT
  • 29.3K Star强!集成微信登录,核心代码就10行
  • 下半年!真心建议大家冲一冲新兴领域,工资高前景好
  • 探索TypeScript的映射类型,从简单到高级的7个实例
  • 【第17讲】6月17日,AI代写(期刊、演讲稿、小说)
  • 茅台降价,“黄牛”公司纷纷跑路
  • 黄仁勋 · 加州理工2024届毕业典礼演讲 | 2024年6月14日(全文+视频)
  • 面试为什么老爱问 Redis?
  • 成都周报丨策源投了清华系大模型,高新区天使母基金遴选GP
  • 天使++轮拿了近亿融资丨投融周报
  • 代码学上头了,感觉自己又行了!
  • 最新编程语言排行榜,C++ 和 Go 成为新王?!
  • 大模型理解复杂表格,字节&中科大出手了
  • 微软也“扶不起”的 Win11!明年退役的 Win10 市占率再涨,网友:不如专心搞 Win12 吧
  • 京东云来了。。。
  • 37项SOTA!全模态预训练范式MiCo:理解任何模态并学习通用表示|港中文&中科院
  • 1分钟内完成报销核对,微软AI Day现场展示Copilot生产力革命
  • 北大快手攻克复杂视频生成难题!新框架轻松组合各种细节,代码将开源