kubectl源码分析之create deployment

基于MCP和A2A协议的多智能体协作框架实战:餐厅预订系统开发 AI Agent作为人工智能技术的重要分支,通过模拟人类智能行为来解决复杂问题。其核心原理在于将大语言模型与工具调用能力相结合,实现自主决策和任务执行。在工程实践中,多智能体协作技术能够显著提升系统处理复杂业务场景的能力,通过分工协作实现更高效的业务流程处理。MCP(Model Context Protocol)协议作为标准化工具交互框架,统一了智能体与外部工具、数据源之间的通信标准,解决了传统API调用的碎片化问题。A2A(Agent-to-Agent)协议则专注于智能体间的通信架构设计,通过智能体卡片、 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件

第四个课程发布:https://edu.youkuaiyun.com/course/detail/28488

本课程将详细介绍k8s所有命令,以及命令的go源码分析,学习知其然,知其所以然
————————————————

type DeploymentOpts struct {//option结构体
	CreateSubcommandOptions *CreateSubcommandOptions
}
//创建create deployment命令
func NewCmdCreateDeployment(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command {
	options := &DeploymentOpts{//初始化结构体
		CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams),
	}

	cmd := &cobra.Command{//创建cobra命令
		Use:                   "deployment NAME --image=image [--dry-run]",
		DisableFlagsInUseLine: true,
		Aliases:               []string{"deploy"},
		Short:                 i18n.T("Create a deployment with the specified name."),
		Long:                  deploymentLong,
		Example:               deploymentExample,
		Run: func(cmd *cobra.Command, args []string) {
			cmdutil.CheckErr(options.Complete(f, cmd, args))//准备运行
			cmdutil.CheckErr(options.Run())//运行命令
		},
	}

	options.CreateSubcommandOptions.PrintFlags.AddFlags(cmd)//设置print 选项

	cmdutil.AddApplyAnnotationFlags(cmd)//设置save-config选项
	cmdutil.AddValidateFlags(cmd)//设置validate选项
	cmdutil.AddGeneratorFlags(cmd, "")//设置generator选项
	cmd.Flags().StringSlice("image", []string{}, "Image name to run.")//设置image选项
	cmd.MarkFlagRequired("image")//必须
	return cmd
}
//准备运行
func (o *DeploymentOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
	name, err := NameFromCommandArgs(cmd, args)//获取名称
	if err != nil {
		return err
	}

	clientset, err := f.KubernetesClientSet()//获取clientset
	if err != nil {
		return err
	}

	generatorName := cmdutil.GetFlagString(cmd, "generator")//后去generator 名称

	if len(generatorName) == 0 {//如果generator名称为空
		generatorName = generateversioned.DeploymentBasicAppsV1GeneratorName//设置默认的generator名称
		generatorNameTemp, err := generateversioned.FallbackGeneratorNameIfNecessary(generatorName, clientset.Discovery(), o.CreateSubcommandOptions.ErrOut)//回退generator,如果有必要
		if err != nil {
			return err
		}
		if generatorNameTemp != generatorName {如果generator不相同则发警告
			cmdutil.Warning(o.CreateSubcommandOptions.ErrOut, generatorName, generatorNameTemp)
		} else {
			generatorName = generatorNameTemp
		}
	}

	imageNames := cmdutil.GetFlagStringSlice(cmd, "image")//获取image选项
	generator, ok := generatorFromName(generatorName, imageNames, name)//根据generator名称生成generator
	if !ok {
		return errUnsupportedGenerator(cmd, generatorName)
	}

	return o.CreateSubcommandOptions.Complete(f, cmd, args, generator)//运行createsubcommandoption complete方法
}
func generatorFromName(
	generatorName string,
	imageNames []string,
	deploymentName string,
) (generate.StructuredGenerator, bool) {

	switch generatorName {//判断generator名称生成相应generator
	case generateversioned.DeploymentBasicAppsV1GeneratorName:
		generator := &generateversioned.DeploymentBasicAppsGeneratorV1{
			BaseDeploymentGenerator: generateversioned.BaseDeploymentGenerator{
				Name:   deploymentName,
				Images: imageNames,
			},
		}
		return generator, true

	case generateversioned.DeploymentBasicAppsV1Beta1GeneratorName:
		generator := &generateversioned.DeploymentBasicAppsGeneratorV1Beta1{
			BaseDeploymentGenerator: generateversioned.BaseDeploymentGenerator{
				Name:   deploymentName,
				Images: imageNames,
			},
		}
		return generator, true

	case generateversioned.DeploymentBasicV1Beta1GeneratorName:
		generator := &generateversioned.DeploymentBasicGeneratorV1{
			BaseDeploymentGenerator: generateversioned.BaseDeploymentGenerator{
				Name:   deploymentName,
				Images: imageNames,
			},
		}
		return generator, true
	}

	return nil, false
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Angular 相关的知识点和项目汇总 Angular 知识点和项目汇总 阅读详情

相关推荐

项目过程记录:ADS-B信号接收并显示(Ubuntu20.04+ANTSDR E310V2)

最近被安排做一个ADS-B信号接收的项目,拿到软件无线电模块(ANTSDR E310V2)后安装环境和软件真的太折磨了。。在此记录以下我走过的弯路,大家可以参考一下。

weixin_43627638的博客 5018

kubectl 命令详解(十八):create deployment

kubectl create deployment 命令详解。

youzhouliu的博客 4505

BIM Revit教程(六)尝试安装 Revit 时显示“Autodesk Revit 已安装。”

在安装Revit或RevitLT时,若系统提示“AutodeskRevit版本已安装”,通常是由于旧版本残留文件未完全清除所致。解决方案包括:1.通过控制面板或Windows设置卸载旧版本Revit,确保所有相关组件被移除;2.使用Autodesk卸载工具(AdskUninstallHelper)进一步清理;3.谨慎操作注册表,删除与Revit相关的残留项;4.确保系统有至少30GB的可用磁盘空间;5.完成上述步骤后,重新尝试安装Revit。此外,文章还提到了一个免费功能商店,供用户寻找提效工具,并鼓励粉丝

ZOZO_888的博客 2134

k8s selector_k8s(二)——kubectl的使用以及创建deployment

kubectl的使用以及创建deploymentkubectl的使用常见概念kubectl管理命令概要管理和使用deployment基于deployment创建nginx pod,有一个副本查看k8s对象状态发布应用服务伸缩滚动更新kubectl的使用常见概念devops 开发和运维实现的方式有:python,docker+k8s,git+Jenkinsk8sk8s集成了docker三剑...

weixin_39653717的博客 1061

用Arduino和RC522模块DIY一个NFC门禁卡复制器(附完整代码)

本文详细介绍了如何利用Arduino和RC522模块DIY一个NFC门禁卡复制器,包括硬件连接、软件配置、数据读写技术及完整代码实现。通过本教程,电子爱好者可以深入了解NFC技术,并构建自己的智能门禁系统,适用于家庭安全、办公场所等多种场景。

weixin_33704591的博客 505

杰理可视化SDK开发-杰理AC1123N芯片SDK开发笔记合集

该文档主要描述 AC112N开发相关的使用说明和注意事项,收集并持续更新开发调试过程中的相关疑问和解答,对SDK介绍文档做一个补充说明。写作人:李永奉,参考项目MD-026H; AC112N-SDK项目帮助文档在杰理开发者平台(JL DP)'帮助'处进入,如本文档有与后续帮助文档或工具注释说明冲突,以后者为标准。

李永奉的博客 188

实战 Kubectl 创建 Deployment 部署应用

作者 | 洲的学习笔记来源 | 优快云博客本篇文章主要是实战 Kubectl 创建 Deployment 部署应用。通过本期文章:我们将学习创建在 Kubernetes 集群上运行应用程序的 Deployment 所需的最常见的 Kubectl 命令。用 Kubectl 创建 Deployment当运行Kubernetes 集群,就可以在其上部署容器化应用程序。此时,...

优快云云计算 3020

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

本文进行布线铺铜实战及详解布线铺铜的细节

嵌入式阿齐Archie 4万+

deployment常用命令

deployment常用命令

教Linux的李老师 1606

机器视觉应用工程师职位深度解析与面试指南

广东奥普特科技招聘机器视觉应用工程师,要求大专以上理工科专业背景,熟悉C/C++或PLC编程,具备自动化设备调试经验。岗位职责包括视觉项目方案评估、系统安装调试、售后技术支持及异常处理,需接受外派出差。该职位面向专业对口的应届生或实习生,强调动手能力、沟通技巧和吃苦耐劳精神。机器视觉工程师需掌握图像处理算法、硬件配置等核心技术,在工业自动化领域具有良好发展前景。求职者应注重编程能力和实践经验的积累,以胜任这一技术密集型岗位。

郑伟强dev的专栏 435

Pytorch入门实战(2)-使用BP神经网络实现MNIST手写数字识别

上一篇:Pytorch入门实战(1) - 实现线性回归 涉及知识点 Pytorch nn.Module的基本使用 Pytorch nn.Linear的基本用法 PytorchVision Transforms的基本使用 Pytorch中DataLoader的基本用法 Pytorch详解NLLLoss和CrossEntropyLoss 如何确定神经网络的层数和隐藏层神经元数量 本文内容 本文将会使用BP神经网络(就是最普通的神经网络)实现一个MNIST手写数据集的实现。话不多说,直接开始。 首先先导入需要的包

iioSnail的博客 6619

跟着官网学k8s-02使用kubectl创建Deployment

先看说明 一旦运行了 Kubernetes 集群,就可以在其上部署容器化应用程序。 为此,您需要创建 Kubernetes Deployment 配置。Deployment 指挥 Kubernetes 如何创建和更新应用程序的实例。创建 Deployment 后,Kubernetes master 将应用程序实例调度到集群中的各个节点上。 创建应用程序实例后,Kubernetes Deployment 控制器会持续监视这些实例。 如果托管实例的节点关闭或被删除,则 Deployment 控制器会将该实例替

weixin_40660221的博客 2701

Android Camera驱动开发工程师面试指南:技术深度与实战准备

摘要:上海移远通信招聘Android Camera驱动开发工程师,主要负责Camera传感器驱动开发维护、高通/展锐平台底层开发及技术预研。岗位要求1年以上嵌入式开发经验,精通Camera传感器驱动调试,熟悉高通平台Camera架构及Android HAL框架。具备HAL开发、算法集成或车载/支付行业经验者优先。工作内容以Driver/HAL开发为主,需具备硬件接口评估能力。该职位接受Linux/单片机背景人员转型。

郑伟强dev的专栏 281

kubectl源码分析之create clusterrole

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。 腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518 第二个视频发布https://edu.youkuaiyun.com/c..

mark's technic world 531

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

kubectl源码分析之create serviceaccount

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。 腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518 第二个视频发布https://edu.youkuaiyun.com/c..

mark's technic world 1135

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

kubectl源码分析之create configmap

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。 腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518 第二个视频发布https://edu.youkuaiyun.com/c..

mark's technic world 460

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

kubectl源码分析之create命令

func NewCmdCreate(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { o := NewCreateOptions(ioStreams) cmd := &cobra.Command{ Use: "create -f F...

mark's technic world 2239

kubectl源码分析之create clusterrolebinding

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。 腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518 第二个视频发布https://edu.youkuaiyun.com/c..

mark's technic world 736

备战CKA每日一题——第4天 | 熟练掌握kubectl命令进行创建资源对象操作,并从源码进行解析

备战CKA每日一题——第4天 | 熟练掌握kubectl命令进行创建资源对象操作,并从源码进行解析

技术宅,专注云原生、Go、Linux、Java等技术分享,原创文章、效率工具、实战解决方案!关注我,了解互联网动态,学 IT 不迷路 942

突破AWX Operator部署困境:从日志分析到数据库修复的全栈排障指南

作为Kubernetes环境中Ansible自动化的核心组件,AWX Operator的部署故障常常让管理员陷入困境: - operator日志中充斥着模糊的错误信息 - PostgreSQL数据库初始化失败却找不到具体原因 - Pod状态显示Running但AWX界面始终无法访问 - 调试配置修改后问题依旧反复出现 本文将系统梳理AWX Operator故障排查方法论,通过12个实战场

gitblog_00817的博客 436

Velero数据迁移实战:掌握CSI卷快照与块级备份的5大核心策略

Velero作为Kubernetes备份与迁移的业界标准工具,在复杂存储环境中的数据迁移场景中展现出强大的能力。本文深入探讨Velero在CSI卷快照和块级数据移动方面的核心技术,帮助中级技术用户掌握高效数据迁移的最佳实践。 ## 1. CSI卷快照数据移动架构解析 Velero的CSI卷快照数据移动功能通过统一的插件化架构,实现了卷数据的无缝迁移。这一架构的核心在于将快照创建、数据传输和存储

gitblog_00131的博客 316

容器编排技术 -- Kubernetes kubectl create deployment 命令详解

容器编排技术 -- Kubernetes kubectl create deployment 命令详解 1kubectl create deployment 2语法 3示例 4Flags kubectl create deployment 创建具有指定名称的deployment。 语法 $ deployment NAME --image=image [--dry-r...

YunWisdom 3677

kubectl create deployment 命令练习

在 Kubernetes 中,kubectl是一个命令行工具,用于与 Kubernetes 集群进行交互。如果你想创建、查看、更新或删除部署(Deployment),可以使用以下常见的kubectl。 kubectl get deployment / kubectl describe deployment

★【World Of Moshow 郑锴】★ 2004

k8s系列之三Deployment

既然 用YAML配置文件 署应用 , 现在就很有必要了解⼀下Deployment的配置格式了,其他Controller(比如DaemonSet)非常类似。metadata:spec:selector:template:metadata:labels:spec:这是一个Kubernetes Deployment的YAML文件,用于定义一个NGINX容器的部署。: 指定使用的 Kubernetes API 版本,这里是 Apps API 的版本。

ByteX的博客 2075

k8s编程operator——(1) client-go基础部分

client-go是一个golang的client,我们可以通过client-go与K8S apiServer进行交互,对k8s集群中资源对象,包括内置资源(例如:Pod、Deployment、Service等)和CRD进行增删改查等操作。client-go地址目录结构:该包包含了可以访问kubernetes集群的api,通过这些API可以与apiServer进行通信,对集群的资源对象进行增删改查。

Peerless__的博客 5871

Kubernetes 笔记(07)— Deployment 的 yaml 描述、使用 kubectl 创建 deployment、通过 labels 标签筛选应用

Deployment顾名思义,它是专门用来部署应用程序的,能够让应用永不宕机,多用来发布无状态的应用。

wohu1104的专栏 4355
上一篇: kubectl 源码之create service
下一篇: kubectl源码分析之create clusterrole
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值