yaml文件创建mysql_简化 Kubernetes Yaml 文件创建-阿里云开发者社区

本文介绍了几种简化Kubernetes YAML文件创建的方法,包括利用kubectl模拟命令执行生成YAML,导出系统中已有资源的描述,以及使用Kompose工具将Docker Compose模板转换为Kubernetes配置。这些技巧有助于减轻YAML文件编写的工作量,提升效率。
摘要由CSDN通过智能技术生成

aab44be50c2d0640a6dcdc0946360acd.png

Kubernetes 提供了丰富的 kubectl 命令,可以较为方便地处理常见任务。如果需要自动化处理复杂的Kubernetes任务,常常需要编写Yaml配置文件。由于Yaml文件格式比较复杂,即使是老司机有时也不免会犯错或需要查询文档,也有人开玩笑这是使用 Yaml 编程。我们今天将介绍几个方法来帮助大家来简化 Kubernetes Yaml 文件创建。

模拟命令执行

kubectl中很多命令支持 --dry-run 和 -o yaml 参数,可以方便地模拟命令执行,并输出yaml格式的命令请求,这样我们就可以将执行结果 Copy & Paste到自己的编辑器中,修改完成自己的配置文件。

$ kubectl run myapp --image=nginx --dry-run -o yaml

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

creationTimestamp: null

labels:

run: myapp

name: myapp

spec:

replicas: 1

selector:

matchLabels:

run: myapp

strategy: {}

template:

metadata:

creationTimestamp: null

labels:

run: myapp

spec:

containers:

- image: nginx

name: myapp

resources: {}

status: {}

$ kubectl create secret generic mysecret --from-literal=quiet-phrase="Shh! Dont' tell" -o yaml --dry-run

apiVersion: v1

data:

quiet-phrase: U2hoISBEb250JyB0ZWxs

kind: Secret

metadata:

creationTimestamp: null

name: mysecret

导出资源描述

kubectl get --export -o yaml 命令会以Yaml格式导出系统中已有资源描述

比如,我们可以将系统中 mysql 部署的描述导成 Yaml 文件

$ kubectl get deployment mysql --export -o yaml > mysql.yaml

Kompose转换

Docker Compose是最为流行的容器编排开发工具,可以方便地在Docker/Docker Swarm环境下开发、部署容器编排模板。

Kompose是Kubernetes社区开发的一个转换工具,可以方便地将简单的Docker Compose模板转化成为Kubernetes的Yaml描述文件,并在Kubernetes集群上部署和管理应用

如下 docker-compose.yaml 模板描述了一个 WordPress 编排,其中包含两个服务,wordpress服务和mysql服务,为了将 wordpress服务暴露给外部访问,我们增加了一个 Kompose 特有的标签 kompose.service.type: nodeport,将服务以NodePort方式提供对外访问方式。

version: '2'

services:

wordpress:

image: wordpress:4

environment:

- WORDPRESS_DB_PASSWORD=password

ports:

- 80:80

depends_on:

- mysql

labels:

kompose.service.type: nodeport

mysql:

image: mysql:5.7

environment:

- MYSQL_ROOT_PASSWORD=password

我们可以通过kompose convert命令转换为 Kubernetes 的 Deployment和Service的资源描述,

$ kompose convert

WARN Unsupported depends_on key - ignoring

INFO Kubernetes file "mysql-service.yaml" created

INFO Kubernetes file "wordpress-service.yaml" created

INFO Kubernetes file "mysql-deployment.yaml" created

INFO Kubernetes file "wordpress-deployment.yaml" created

也可以通过kompose convert --stdout命令输出到标准输出

总结

Kubernetes以其开放的平台和活跃的社区征服了众多用户,然而其陡峭的学习曲线也让初学者望而生畏。今天希望通过几个技巧帮助大家简化 Kubernetes Yaml 文件的编写。

阿里云Kubernetes服务全球首批通过Kubernetes一致性认证,简化了Kubernetes集群生命周期管理,内置了与阿里云产品集成,也将进一步简化Kubernetes的开发者体验,帮助用户关注云端应用价值创新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值