Kubernetes实用指令:通过dry-run生成部署与服务的YAML配置

简介: 总结起来, 使用 ` -- dry—run = client `- o yam l' 参数能够帮助用户预览 Kubernetes 资源定义并且确保它们符合预期效果且没有立即影响现有集群断层结构. 这种做法对于新手学习 K8s 资源规范、测试新策略或者审核现有策略都非常有效率与安全.

在Kubernetes中,dry-run是一个非常有用的选项,它允许用户模拟创建资源的操作。这个选项可以用来生成资源对象(如部署(Deployments)和服务(Services))的YAML配置文件,而不会真正地在集群中创建这些资源。以下是如何使用 kubectl命令行工具通过dry-run来生成部署和服务配置文件的步骤。

生成部署(Deployment) YAML 配置

要创建一个新的Deployment并获取其YAML配置而不实际执行该操作,可以使用以下命令:

kubectl create deployment <deployment-name> --image=<image-name> --dry-run=client -o yaml > deployment.yaml
​
  • <deployment-name>: 替换为你想要给你的Deployment指定的名称。
  • <image-name>: 替换为容器镜像名称及其版本标签。

例如:

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

这条命令将会输出一个名为 myapp-deployment.yaml 的文件,并包含了基于nginx镜像创建Deployment所需全部信息。

生成服务(Service) YAML 配置

同样地,如果想要获取Service对象YAML格式而不实际在集群中进行任何操作,则可以执行:

kubectl create service clusterip <service-name> --tcp=<port>:<target-port> --dry-run=client -o yaml > service.yaml
​
  • <service-name>: 替换成你希望指定给Service对象名称。
  • <port>: Service对外暴露端口。
  • <target-port>:Pod内应用程序监听端口。

例如:

kubectl create service clusterip myapp-service --tcp=80:8080 --dry-run=client -o yaml > myapp-service.yaml 
​

上述命令将输出名为 myapp-service.yaml 的文件,并包含了基于TCP协议、映射外部端口80到内部目标端口8080所需全部信息以定义Service对象。

综合示例

如果需要同时准备好一个应用程序需要使用到Deployment和Service两种类型资源定义,则可分别运行上述两个示例提供的命令。首先运行第一条以准备好 Deployment 定义, 然后运行第二条以准备 Service 定义:

  1. 创建 Deployment YAML 文件:

    kubectl create deployment nginx-deploy — image = nginx — dry—run = client — o yaml > nginx—deploy .yaml 
    ​
    
  2. 创建 Service YAML 文件:

    kubectl create service clusterip nginx-svc — tcp = 80 : 80 — dry—run = client — o yaml > nginx-svc .yaml 
    ​
    

通过以上步骤, 用户能够快速得到一套可供立即投入生产环境或进一步编辑调整后再投入生产环境 Kubernetes 资源定义文档.

总结起来, 使用 -- dry—run = client- o yam l' 参数能够帮助用户预览 Kubernetes 资源定义并且确保它们符合预期效果且没有立即影响现有集群断层结构. 这种做法对于新手学习 K8s 资源规范、测试新策略或者审核现有策略都非常有效率与安全.

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
14天前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
97 16
|
15天前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
141 3
|
1月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
63 4
|
10月前
|
存储 人工智能 开发框架
Kheish:开源的多智能体开发框架,通过 YAML 配置工作流和多个 Agent 共同协作解决复杂任务
Kheish 是一个开源的多智能体协调平台,基于大型语言模型(LLM)设计,能够通过灵活配置多个智能体来解决复杂任务。平台支持模块化集成、聊天式提示、反馈循环等功能,适用于代码审计、法律文件分析、客户服务自动化等多种应用场景。
298 18
Kheish:开源的多智能体开发框架,通过 YAML 配置工作流和多个 Agent 共同协作解决复杂任务
|
Kubernetes 应用服务中间件 数据格式
使用YAML创建一个 Kubernetes Depolyment
在之前的文章中,我们已经提到过如何使用Kubernetes去创建资源。到目前为止,我们一直仅仅通过命令行去执行,但是这里有一个更加简单有效的方式去创建资源:通过使用YAML创建一个配置文件。在这篇文章,我们将会关注YAML的工作方式以及如何使用YAML创建一个Kubernetes Pod,然后使用Kubernetes创建一个Depolyment。
2112 0
|
JSON Kubernetes API
深入理解Kubernetes配置:编写高效的YAML文件
深入理解Kubernetes配置:编写高效的YAML文件
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
244 1
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
224 2
k8s学习--YAML资源清单文件托管服务nginx
|
Kubernetes Docker Perl
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
380 1

热门文章

最新文章