内容简介:【编者的话】如果需要自动化处理复杂的Kubernetes任务,常常需要编写Yaml配置文件。由于Yaml文件格式比较复杂,即使是老手有时也不免会犯错或需要查询文档,也有人开玩笑这是使用 Yaml 编程。我们今天将介绍几个方法来帮助大家来简化 Kubernetes Yaml 文件创建。Kubernetes 提供了丰富的 kubectl 命令,可以较为方便地处理常见任务。如果需要自动化处理复杂的Kubernetes任务,常常需要编写Yaml配置文件。由于Yaml文件格式比较复杂,即使是老司机有时也不免会犯错或需
【编者的话】如果需要自动化处理复杂的Kubernetes任务,常常需要编写Yaml配置文件。由于Yaml文件格式比较复杂,即使是老手有时也不免会犯错或需要查询文档,也有人开玩笑这是使用 Yaml 编程。我们今天将介绍几个方法来帮助大家来简化 Kubernetes Yaml 文件创建。
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 <resource-type> <resource> --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集群上部署和管理应用。 如果你想和更多Kubernetes技术专家交流,可以加我微信liyingjiese,备注『加群』。群里每周都有全球各大公司的最佳实践以及行业最新动态 。
我们可以通过 https://github.com/kubernetes/kompose 获取最新的kompose 工具。
如下 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 文件的编写。
以上所述就是小编给大家介绍的《利用Helm简化Kubernetes应用部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Dapr 是如何简化微服务的开发和部署
- 10大工具汇总,多维度简化Kubernetes部署
- 前端项目无独立部署环境时,使用shell命令简化依赖后台部署的繁杂操作
- VMware与阿里云达成战略合作 简化混合云部署
- SaltOps 0.6.0-Preview2 发布,业务部署设计简化
- 用go来做嵌入式开发-嵌入资源简化程序部署
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Starfish and the Spider
Ori Brafman、Rod A. Beckstrom / Portfolio Hardcover / 2006-10-05 / USD 24.95
Understanding the amazing force that links some of today's most successful companies If you cut off a spider's leg, it's crippled; if you cut off its head, it dies. But if you cut off a st......一起来看看 《The Starfish and the Spider》 这本书的介绍吧!