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

云计算
本文章介绍了两种快速生成Kubernetes YAML清单的方法:使用Visual Studio的Kubernetes扩展和通过kubectl命令结合--dry-run标志。

在这篇文章中,你将学习到几种快速创建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结构,如下图所示。

该扩展支持生成Pod、Deployment、StatefulSet、ReplicationSet、Persistent 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,命令行操作在考试中非常有用。

1.Kubectl YAML Dry Run 示例

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

(1) 创建Pod YAML

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

kubectl run mypod --image=nginx:latest \
            --labels type=web \
            --dry-run=client -o yaml > mypod.yaml

(2) 创建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

(3) 创建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

(4) 创建Deployment YAML

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

kubectl create deployment mydeployment \
    --image=nginx:latest \
    --dry-run=client -o yaml > mydeployment.yaml

(5) 创建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

(6) 创建Job YAML

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

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

(7) 创建Cronjob YAML

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

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

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

2.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

责任编辑:赵宁宁 来源: 攻城狮成长日记
相关推荐

2023-10-08 18:07:42

Kubernetes开源容器

2021-03-07 09:05:45

Pytorch机器学习神经网络

2015-07-02 09:21:16

路由器IP地址

2023-10-15 12:18:36

MPLS网络

2011-07-19 15:49:04

Xcode 文件

2021-09-16 14:42:17

NAS网络附属存储存储

2011-07-03 22:48:55

SEO

2024-05-09 08:28:10

Python字符串百分号格式化

2010-06-11 09:36:44

MySQL使用前奏

2011-05-31 16:47:47

SEO

2023-05-05 17:20:04

2019-12-06 11:03:34

网站上线终极测试

2018-10-06 07:18:12

物联网平台物联网IOT

2015-07-20 09:39:41

Java日志终极指南

2017-03-27 21:14:32

Linux日志指南

2009-11-13 15:25:51

ADO.NET的对象

2012-08-21 06:53:00

测试软件测试

2020-07-19 08:15:41

PythonDebug

2009-11-06 16:22:35

WCF协定

2018-06-01 08:37:30

物联网混合云数据保护
点赞
收藏

51CTO技术栈公众号