欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 2.4 kubectl命令行设置7大命令分组

2.4 kubectl命令行设置7大命令分组

2025/2/24 22:14:03 来源:https://blog.csdn.net/weixin_48502062/article/details/145263510  浏览:    关键词:2.4 kubectl命令行设置7大命令分组

本节重点总结 :

  • 设置cmd工厂函数f,主要是封装了与kube-apiserver交互客户端
  • 用cmd工厂函数f创建7大分组命令 ,如下
  1. 基础初级命令 Basic Commands (Beginner):
  2. 基础中级命令 Basic Commands (Intermediate):
  3. 部署命令 Deploy Commands:
  4. 集群管理分组 Cluster Management Commands:
  5. 故障排查和调试 Troubleshooting and Debugging Commands:
  6. 高级命令 Advanced Commands:
  7. 设置命令 Settings Commands

架构图

kubectl_cmd_group.png

设置参数-替换方法

	flags := cmds.PersistentFlags()flags.SetNormalizeFunc(cliflag.WarnWordSepNormalizeFunc) // Warn for "_" flags// Normalize all flags that are coming from other packages or pre-configurations// a.k.a. change all "_" to "-". e.g. glog packageflags.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)addProfilingFlags(flags)flags.BoolVar(&warningsAsErrors, "warnings-as-errors", warningsAsErrors, "Treat warnings received from the server as errors and exit with a non-zero exit code")

设置kubeconfig相关的命令行

	kubeConfigFlags := genericclioptions.NewConfigFlags(true).WithDeprecatedPasswordFlag()kubeConfigFlags.AddFlags(flags)matchVersionKubeConfigFlags := cmdutil.NewMatchVersionFlags(kubeConfigFlags)matchVersionKubeConfigFlags.AddFlags(cmds.PersistentFlags())

设置cmd工厂函数f,主要是封装了与kube-apiserver交互客户端

  • 后面的子命令都使用这个f创建
	f := cmdutil.NewFactory(matchVersionKubeConfigFlags)

创建proxy子命令

	proxyCmd := proxy.NewCmdProxy(f, ioStreams)proxyCmd.PreRun = func(cmd *cobra.Command, args []string) {kubeConfigFlags.WrapConfigFn = nil}

创建7大分组命令

1. 基础初级命令 Basic Commands (Beginner):

  • 代码
		{Message: "Basic Commands (Beginner):",Commands: []*cobra.Command{create.NewCmdCreate(f, ioStreams),expose.NewCmdExposeService(f, ioStreams),run.NewCmdRun(f, ioStreams),set.NewCmdSet(f, ioStreams),},},
  • 对应的输出

Basic Commands (Beginner):create        Create a resource from a file or from stdin.expose        Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Servicerun           Run a particular image on the clusterset           Set specific features on objects
  • 释义
    • create 代表创建资源
    • expose 将一种资源暴露成service
    • run 运行一个镜像
    • set 在对象上设置一些功能

2. 基础中级命令 Basic Commands (Intermediate):

	{Message: "Basic Commands (Intermediate):",Commands: []*cobra.Command{explain.NewCmdExplain("kubectl", f, ioStreams),get.NewCmdGet("kubectl", f, ioStreams),edit.NewCmdEdit(f, ioStreams),delete.NewCmdDelete(f, ioStreams),},},
  • 打印的help效果
Basic Commands (Intermediate):explain       Documentation of resourcesget           Display one or many resourcesedit          Edit a resource on the serverdelete        Delete resources by filenames, stdin, resources and names, or by resources and label selector
  • 释义
    • explain 获取资源的文档
    • get 展示资源
    • edit 编辑资源
    • delete 删除资源

3. 部署命令 Deploy Commands:

		{Message: "Deploy Commands:",Commands: []*cobra.Command{rollout.NewCmdRollout(f, ioStreams),scale.NewCmdScale(f, ioStreams),autoscale.NewCmdAutoscale(f, ioStreams),},},
  • 输出为
  rollout       Manage the rollout of a resourcescale         Set a new size for a Deployment, ReplicaSet or Replication Controllerautoscale     Auto-scale a Deployment, ReplicaSet, or ReplicationController
  • 释义
    • rollout 滚动更新
    • scale 扩缩容
    • autoscale 自动扩缩容

4. 集群管理分组 Cluster Management Commands:

		{Message: "Cluster Management Commands:",Commands: []*cobra.Command{certificates.NewCmdCertificate(f, ioStreams),clusterinfo.NewCmdClusterInfo(f, ioStreams),top.NewCmdTop(f, ioStreams),drain.NewCmdCordon(f, ioStreams),drain.NewCmdUncordon(f, ioStreams),drain.NewCmdDrain(f, ioStreams),taint.NewCmdTaint(f, ioStreams),},},
  • 输出

Cluster Management Commands:certificate   Modify certificate resources.cluster-info  Display cluster infotop           Display Resource (CPU/Memory/Storage) usage.cordon        Mark node as unschedulableuncordon      Mark node as schedulabledrain         Drain node in preparation for maintenancetaint         Update the taints on one or more nodes
  • 释义
    • certificate 管理证书
    • cluster-info 展示集群信息
    • top 展示资源消耗top
    • cordon 将节点标记为不可用
    • uncordon 将节点标记为可用
    • drain 驱逐pod
    • taint 设置节点污点

5.故障排查和调试 Troubleshooting and Debugging Commands:

		{Message: "Troubleshooting and Debugging Commands:",Commands: []*cobra.Command{describe.NewCmdDescribe("kubectl", f, ioStreams),logs.NewCmdLogs(f, ioStreams),attach.NewCmdAttach(f, ioStreams),cmdexec.NewCmdExec(f, ioStreams),portforward.NewCmdPortForward(f, ioStreams),proxyCmd,cp.NewCmdCp(f, ioStreams),auth.NewCmdAuth(f, ioStreams),debug.NewCmdDebug(f, ioStreams),},},
  • 输出
Troubleshooting and Debugging Commands:describe      Show details of a specific resource or group of resourceslogs          Print the logs for a container in a podattach        Attach to a running containerexec          Execute a command in a containerport-forward  Forward one or more local ports to a podproxy         Run a proxy to the Kubernetes API servercp            Copy files and directories to and from containers.auth          Inspect authorizationdebug         Create debugging sessions for troubleshooting workloads and nodes
  • 释义
    • describe 展示资源详情
    • logs 打印pod中容器日志
    • attach 进入容器
    • exec 在容器中执行命令
    • port-forward 端口转发
    • proxy 运行代理
    • cp 拷贝文件
    • auth 检查鉴权
    • debug 打印debug

6. 高级命令 Advanced Commands:

  • 代码
		{Message: "Advanced Commands:",Commands: []*cobra.Command{diff.NewCmdDiff(f, ioStreams),apply.NewCmdApply("kubectl", f, ioStreams),patch.NewCmdPatch(f, ioStreams),replace.NewCmdReplace(f, ioStreams),wait.NewCmdWait(f, ioStreams),kustomize.NewCmdKustomize(ioStreams),},},
  • 输出
Advanced Commands:diff          Diff live version against would-be applied versionapply         Apply a configuration to a resource by filename or stdinpatch         Update field(s) of a resourcereplace       Replace a resource by filename or stdinwait          Experimental: Wait for a specific condition on one or many resources.kustomize     Build a kustomization target from a directory or a remote url.
  • 释义
    • diff 对比当前和应该运行的版本
    • apply 应用变更或配置
    • patch 更新资源的字段
    • replace 替换资源
    • wait 等待资源的特定状态
    • kustomize 从目录或远程 url 构建 kustomization 目标。

7. 设置命令 Settings Commands

  • 代码
		{Message: "Settings Commands:",Commands: []*cobra.Command{label.NewCmdLabel(f, ioStreams),annotate.NewCmdAnnotate("kubectl", f, ioStreams),completion.NewCmdCompletion(ioStreams.Out, ""),},},
  • 输出
Settings Commands:label         Update the labels on a resourceannotate      Update the annotations on a resourcecompletion    Output shell completion code for the specified shell (bash or zsh)
  • 释义
    • label 打标签
    • annotate 更新注释
    • completion 在shell上设置补全

本节重点总结 :

  • 设置cmd工厂函数f,主要是封装了与kube-apiserver交互客户端
  • 用cmd工厂函数f创建7大分组命令 ,如下
  1. 基础初级命令 Basic Commands (Beginner):
  2. 基础中级命令 Basic Commands (Intermediate):
  3. 部署命令 Deploy Commands:
  4. 集群管理分组 Cluster Management Commands:
  5. 故障排查和调试 Troubleshooting and Debugging Commands:
  6. 高级命令 Advanced Commands:
  7. 设置命令 Settings Commands

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com