kubectl源码分析之create clusterrolebinding

Clusterrolebindings 创建错误 这篇文章memo一下kubernetes的clusterrolebinding创建错误的问题确认过程。kubernetes从1.8之后将RBAC作为了缺省的认证方式,自然clusterrole和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/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 ClusterRoleBindingOpts struct {//clusterrolebinding结构体
	CreateSubcommandOptions *CreateSubcommandOptions
}
//创建create clusterrolebinding命令
func NewCmdCreateClusterRoleBinding(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command {
	o := &ClusterRoleBindingOpts{//初始化结构体
		CreateSubcommandOptions: NewCreateSubcommandOptions(ioStreams),
	}

	cmd := &cobra.Command{//创建cobra命令
		Use:                   "clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run]",
		DisableFlagsInUseLine: true,
		Short:                 i18n.T("Create a ClusterRoleBinding for a particular ClusterRole"),
		Long:                  clusterRoleBindingLong,
		Example:               clusterRoleBindingExample,
		Run: func(cmd *cobra.Command, args []string) {
			cmdutil.CheckErr(o.Complete(f, cmd, args))//准备运行
			cmdutil.CheckErr(o.Run())//运行
		},
	}

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

	cmdutil.AddApplyAnnotationFlags(cmd)//设置save-config选项
	cmdutil.AddValidateFlags(cmd)//设置validate选项
	cmdutil.AddGeneratorFlags(cmd, generateversioned.ClusterRoleBindingV1GeneratorName)//设置generator选项
	cmd.Flags().String("clusterrole", "", i18n.T("ClusterRole this ClusterRoleBinding should reference"))//设置clusterrole选项
	cmd.MarkFlagCustom("clusterrole", "__kubectl_get_resource_clusterrole")
	cmd.Flags().StringArray("user", []string{}, "Usernames to bind to the clusterrole")//设置user选项
	cmd.Flags().StringArray("group", []string{}, "Groups to bind to the clusterrole")//设置group选项
	cmd.Flags().StringArray("serviceaccount", []string{}, "Service accounts to bind to the clusterrole, in the format <namespace>:<name>")//设置serviceaccount选项
	return cmd
}
//准备运行
func (o *ClusterRoleBindingOpts) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error {
	name, err := NameFromCommandArgs(cmd, args)//获取名称
	if err != nil {
		return err
	}

	var generator generate.StructuredGenerator
	switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName {
	case generateversioned.ClusterRoleBindingV1GeneratorName://获取generator选项并判断
		generator = &generateversioned.ClusterRoleBindingGeneratorV1{//构造generator对象
			Name:            name,
			ClusterRole:     cmdutil.GetFlagString(cmd, "clusterrole"),
			Users:           cmdutil.GetFlagStringArray(cmd, "user"),
			Groups:          cmdutil.GetFlagStringArray(cmd, "group"),
			ServiceAccounts: cmdutil.GetFlagStringArray(cmd, "serviceaccount"),
		}
	default:
		return errUnsupportedGenerator(cmd, generatorName)
	}

	return o.CreateSubcommandOptions.Complete(f, cmd, args, generator)//运行createSubCommandOption complete方法
}

 

 

 

 

 

 

 

 

 

k8s: error: failed to create clusterrolebinding connection refused 从错误上看是要连123.456.87.99:6443,这个IP端口的tcp。就是我方发SYN,对方回RST。我方client,期望对方是server(是否已经监听在这个服务端口)。需要ss看端口是否打开。如果开了端口,还是有问题,就要使用tcpdump抓包看看,是否是网络上的防火墙导致问题。这种问题的一般原因就是端口没有开放,内核主动发RST。 阅读详情

相关推荐

MOLDFLOW 2012模流分析基础到实战视频教程

├ 1第一讲MF软件安装与界面定制及模流前期准备工作及分析流程介绍 ├ 2第二讲MF建模工具条命令讲解与图层的运用 ├ 3第三讲MF网格类型与适应范围及网格划分、诊断、修复与统计 ├ 4第四讲MF中CAD doctor 模块对导入模型的修复方法与实例 ├ 5第五讲MF中常见各种流道浇口及水路的建模方法与外部导入方法上 ├ 6第六讲MF产品模型导入CAD DOCTOR与修复 ├ 7第七讲MF分析序列设定与网格的划分与诊断及修复 ├ 8第八讲MF材料选择与成型工艺参数设定 ├ 9第九讲MF创建浇注系统:主流道、

QQ_1987083845的博客 2547

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

容器编排技术 -- Kubernetes kubectl create clusterrolebinding 命令详解 1kubectl create clusterrolebinding 2语法 3示例 4Flags kubectl create clusterrolebinding 为特定的ClusterRole创建ClusterRoleBinding。 语法 $...

YunWisdom 2751

CCS20实战入门:第一个工程搭建示例

通过实际操作演示如何在ccs20中创建并配置首个开发项目,涵盖环境设置与基础调试步骤,帮助新手快速上手ccs20集成开发环境,提升嵌入式开发效率。

weixin_31185473的博客 888

Kubernetes(K8s)_10_认证机制

Kubernetes(K8s)保证安全的认证机制/插件

爱喝可乐的w 1764

FPGA波束形成:从算法到硬件的艺术之旅

本文深入探讨了FPGA在波束形成技术中的应用,从算法原理到Verilog硬件实现的全过程。文章详细分析了FPGA并行处理、低延迟和可重构特性如何优化波束形成系统性能,并提供了Verilog关键模块代码示例和资源优化策略,为工程师实现高效FPGA波束形成解决方案提供实用指导。

tea88的博客 1047

电机FOC控制实战:STM32 CubeMX配置六路互补PWM与死区优化

本文详细介绍了如何使用STM32 CubeMX配置六路互补PWM与死区优化,实现电机FOC控制。通过实战经验分享,包括时钟配置、定时器设置、死区时间计算及优化技巧,帮助开发者避免常见问题,提升电机控制性能。特别适用于STM32G4系列的无刷电机驱动应用。

weixin_29193259的博客 404

二进制部署高可用Kubernetes集群 (成功) 看报错

序号名字功能VMNET 1备注 + 1备注 + 2备注 +3备注 + 4备注 +50orgin界面haproxykeepalived1仓库yum 仓库registoryhaproxykeepalived2master01H-K8S-1kube-apicontrollerscheduleretcd3master02H-K8S-2kube-apicontrollerscheduleretcd4master03H-K8S-3。

m0_59267075的博客 2235

Qt6.8.0(win64)安装教程

启动 Visual Studio 2022 Community,选择 “继续但无需代码” 运行,然后打开Option设置,Add一条版本配置,Location 选择 D:\Qt\6.8.0\msvc2022_64\bin\qmake,点击确定。我是win11系统,所以选择windows版,下载路径二选一即可。方案1:默认情况下,额外勾选图中两个组件(总共40多G)方案2:按图中自定义勾选组件(总共5.8G)选择Custom Installation。我选的方案2,总共5.81G。

D4G1TIAO的博客 9075

Kubernetes详解(五十三)——Kubernetes Role创建和Rolebinding

今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes权限配置。 一、Kubernetes Role创建 二、Kubernetes Rolebinding 三、效果展示

永远是少年 3280

FlexSim:FlexSim软件介绍与安装

在开始安装FlexSim之前,首先需要从FlexSim官方网站下载安装包。FlexSim提供不同版本的软件,包括教育版、专业版等,确保选择适合您需求的版本。下载页面通常会列出系统要求,包括操作系统、处理器、内存和硬盘空间,确保您的计算机满足这些要求。访问FlexSim官方网站。导航至下载页面。选择适合您需求的FlexSim版本。点击下载按钮,开始下载安装包。在开始构建模型之前,首先需要明确模型的目标。模型目标是指导模型设计和分析的核心,它定义了你希望通过模型解决的问题或探索的系统行为。

kkchenjj的博客 5808

冲压机器人系列编程:ABB IRB 6700_(6).RAPID编程语言入门

主菜单:包含文件、编辑、视图、工具等常用操作。项目浏览器:显示当前项目的文件结构,包括机器人模型、程序模块等。图形界面:用于创建和编辑机器人的虚拟环境。RAPID代码编辑器:用于编写和编辑RAPID代码。仿真控制面板:用于控制仿真过程,包括启动、暂停、停止等。变量是存储数据的容器,可以通过变量名访问和修改其存储的数据。变量定义时需要指定其类型和名称。% 定义一个整数变量并赋初值% 定义一个实数变量,未赋初值函数定义时需要指定其返回类型和参数。num result;子程序类似于函数,但不返回值。

zhubeibei168的博客 1379

k8s实战之kubectl

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

SO_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、保活包

是一个套接字选项,用于设置是否启用 keepalive 机制。在这段代码中没有涉及到选项的设置。当被设置为非零值时,表示启用 keepalive 机制。keepalive 是一种用于检测连接是否仍然有效的机制。通过定期发送一些特定的探测数据,可以检测到网络连接的异常中断或对端应用程序的崩溃退出。为了避免以上情况,可以启用 keepalive 机制,即使在无数据传输的情况下也定期发送探测数据。如果在一定时间内没有收到对端的响应,就认为连接已经失效,并进行相应的处理。要启用选项,需要使用函数。其中,fd。

m0_46376834的博客 4819

【错误解决】kubectl权限不够,报错:User “kubernetes“ cannot create resource “clusterrolebindings“ in API group “rb

错误: kubectl --server=https://192.168.56.169:6443 create clusterrolebinding kubernetes --clusterrole=cluster-admin --user=kubernetes 报错信息: error: failed to create clusterrolebinding: clusterrolebindings.rbac.authorization.k8s.io is forbidden: User "kubern

weixin_42072280的博客 9896

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

kubectl create rolebinding 中英文对照

kubectl create rolebinding 中英文对照。

wlzx059的博客 190

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

kubernetes报错解决

kubernetes报错解决 1、问题1 #1、检查etcd文件 vi /opt/etcd/cfg/etcd #2、停止etcd服务 systemctl stop etcd #3、删除缓存目录 rm -rf /var/lib/etcd/* #4、重启etcd服务 systemctl start etcd #如果报错请重复上述步骤 2、问题2 #1检查etcd配置文件内容是否正确 vi /opt/etcd/cfg/etcd #2停止etcd服务 systemctl stop etcd #3确定pem文件

qq_42692494的博客 1686

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

k8s 二进制部署之 Node 组件部署

在 master 执行,将kubelet-bootstrap用户绑定到系统集群角色 kubectl create clusterrolebinding kubelet-bootstrap \ --clusterrole=system:node-bootstrapper \ --user=kubelet-bootstrap 创建kubeconfig文件 在master执行,在生成kubernetes证书的目录下执行以下命令生成kubeconfig文件: c47ffb939f5ca36231d9e31

菜鸟厚非 7641

kubernetes集群配置serviceaccount;Service Account和RBAC授权

https://blog.51cto.com/ylw6006/2067326 Kubernetes API的其它服务。Service Account它并不是给kubernetes集群的用户使用的,而是给pod里面的进程使用的,它为pod提供必要的身份认证。 Kubernetes提供了Secret来处理敏感信息,目前Secret的类型有3种: Opaque(default): 任意字符串...

码农崛起 2123

快速搭建Kubernetes (K8S)平台

保姆级教程搭建Kubernetes (K8S)平台

lcw6652532的博客 2694

使用kubectl访问Kubernetes集群时的身份验证和授权

kubectl是日常访问和管理Kubernetes集群最为常用的工具。 当我们使用kubeadm成功引导启动(init)一个Kubernetes集群的控制平面后,kubeadm会在init的输出结果中给予我们下面这样的“指示”: `... ... Your Kubernetes master has initialized successfully! To start using your cl...

1万+

Kubernetes学习笔记(四):持久化存储与安全认证

一、持久化存储 容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,Kubernetes引入了Volume的概念 Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,Kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。Volume的生命容器不与Pod中单个容器的生命周期相关,当

hxt的博客 1405

Kubernetes角色访问控制RBAC和权限规则(Role+ClusterRole)---好文

基于角色的访问控制(Role-Based Access Control, 即”RBAC”)使用”rbac.authorization.k8s.io” API Group实现授权决策,允许管理员通过Kubernetes API动态配置策略。 RBAC API所定义的四种类型 Role与ClusterRole 在RBAC API中,一个角色定义了一组特定权限的规则。namespace范围内的角色由Ro...

BigData_Mining的博客 1万+

error: unable to upgrade connection: Unauthorized在k8s实现kubectl exec -it pod_ID sh出错解决

在创建pod时,进入pod失败 kubectl exec -it nginx-deployment-d55b94fd-xcrtg sh 检查问题,一直找不到答案,通过logs发现,同样不能实现 查其原因,是kubelet的配置问题,这里修改node节点的kubelet.json配置, 在node中分别修改 vi /opt/kubernetes/cfg/kubelet.config -----...

chang_rj的博客 1万+

Kubernetes RBAC 内置集群角色ClusterRole

k8s 内置的集群角色 system k8s为了让用户使用某些特定的权限,给大家预留了四个集群角色,这个是可以是直接使用的。 以system开头的都是k8s内置的,不要随便删除,删除了可能导致集群功能不正常 [root@k8s-master ~]# kubectl get clusterrole NAME CREATED AT system:aggregate-to-.

小楼一夜听春雨,深巷明朝卖杏花 4135

报错!clusterrolebindings.rbac.authorization.k8s.io “cluster-admin-binding“ already exists解决办法

项目场景: 在使用二进制部署k8s群集时,遇到了签名证书无法创建的问题 问题描述: 在创建bootstrap角色赋予权限用于连接apiserver请求签名时,出现以下报错信息: [root@master kubeconfig]# kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap Error from server (Alread

weixin_47153988的博客 8297
上一篇: kubectl源码分析之create clusterrole
下一篇: kubectl源码分析之create role
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、付费专栏及课程。

余额充值