- 博客(911)
- 收藏
- 关注
原创 【k8s】用户和服务账户联系(user、serviceaccount、sa)
在 Kubernetes 和 OpenShift 中,用户和服务账户用户(User)用户是集群外部的实体,代表人或应用程序,通过 API 或命令行与 Kubernetes 集群进行交互。用户由集群管理员创建,可以是一个真实用户(如开发人员)或一个外部系统(如 CI/CD 工具)。它们是集群外部的身份,没有自动与 Pod 关联。用户通过工具(如kubectloc)或 API 调用创建、管理资源(如 Pod、Deployment)。
2025-01-11 16:02:22
1053
1
原创 【k8s】Linux Namespace : User(uid、gid)
User namespace 是 Linux 3.8 新增的一种 namespace,用于隔离安全相关的资源,包括 user IDs and group IDs,keys, 和 capabilities。同样一个用户的 user ID 和 group ID 在不同的 user namespace 中可以不一样(与 PID nanespace 类似)。换句话说,一个用户可以在一个 user namespace 中是普通用户,但在另一个 user namespace 中是超级用户。
2024-12-26 22:28:59
687
原创 【linux】 unshare -user -r /bin/bash命令详解
是一个 Linux 命令,它用于在新的用户命名空间中运行一个进程(在这个例子中是 /bin/bash)。以下是这个命令的详细解释:【1. 命令解析】创建新的命名空间注意:不能单独存在,依赖前面的--user参数/bin/bash:命令运行一个新的 Bash shell,使其在创建的用户命名空间中运行。【2. 效果】运行后:内部独立环境:对命名空间内部的修改(如文件系统、权限等)不会影响全局系统。
2024-12-24 22:20:11
439
原创 【linux】 gid、uid、/etc/passwd、/etc/group
的第二列最早是在UNIX系统中用于记录密码的,但是这其中存在一个问题:由于每个用户都需要有读取这个文件的权限,而随着现代密码破解技术的发展,即便是加密的密码,也有被破解的可能,所以将密码从这个文件中剥离出去是非常必要的。中,而且默认只有root用户才有读的权限,其他人完全没有读取这个文件的可能。与/etc/passwd类似,/etc/shadow也是由冒号“:”隔开的,不同的是这里是8个冒号隔开的9列。可以看到,虽然每行的内容不一样,但格式却是一致的,即每行都是使用6个分隔号“:”隔开的7列字符串。
2024-12-23 17:09:43
1258
原创 【git、gerrit】特性分支合入主分支方法 git rebase 、git cherry-pick、git merge
原始提交的标识符。哈希值(commit hash)是在分支 br_feature 上创建时生成的,具体由提交的内容、父提交的哈希值、提交作者和时间等因素决定。它代表了特性分支上特定的提交。是原始提交 F3 的一个“重新生成”版本。发生这种情况时,提交的内容可能相同,但父提交的哈希值已改变,从而导致新的提交哈希值(即 F3’)与 F3 不同。git cherry-pick:将 F3 应用到另一个分支上,生成新的提交。
2024-12-16 16:03:15
1278
原创 【k8s源码】kubernetes-1.22.3\staging 目录作用
staging暂存即将独立的模块化代码。支持 Kubernetes 主项目与模块间的跨依赖管理。为模块化代码提供独立发布和版本化能力。它是 Kubernetes 模块化开发的桥梁,是正式发布模块前的重要中间步骤。
2024-12-11 20:01:47
1181
原创 【k8s】kubelet 和 API Server的关系
kubelet 和 API Server 是 Kubernetes 中紧密合作的两个组件。kubelet 承担了节点级别的资源管理和容器生命周期管理,而 API Server 则是集群级别的控制中心。两者通过安全通信和状态同步,确保集群中的资源调度和应用运行达到预期状态。
2024-12-07 14:39:46
1836
1
原创 【k8s.io/apiserver】k8s.io/apiserver 代码结构解析
Kubernetes 1.22 中的继续通过模块化设计提供高扩展性。开发者可以基于它快速构建核心 API Server 或扩展 Kubernetes 的功能,同时受益于 1.22 提供的功能增强和优化。
2024-12-06 18:46:39
1106
原创 【go】 select case 超时机制(time.After)示例和内存泄漏
2)只关心此通道有数据或没数据,不关心数据的内容,因为 我们要判断是否要超时,没超时,通道就是空的,当超时就会往通道写一个数据,这个数据内容可以是任意数据,哪怕是 "abc"也可以,case
2024-12-05 14:37:41
629
原创 【go 】 select case 的用法
特点:1)case 只能一次性的,一旦响应后,就结束了,参见后面第三章节for的例子,可以多次监听2)如果多个通道都没有响应,会阻塞,直到某个通道率先响应。
2024-12-05 11:03:20
531
原创 【go】只读通道和只写通道
在 Go 中,只读通道和只写通道的概念通过通道的方向来实现。Go 语言允许你在函数参数中指定通道的方向,从而限制通道的使用方式,这样可以确保代码的清晰性和安全性。通过在函数参数中使用通道的方向(只读或只写),Go 提供了一种清晰和安全的方式来限制通道的使用。这种机制增强了并发编程中的可控性,避免了意外的错误和滥用。当你定义一个通道时(如 ch := make(chan int)),这个通道是双向的,即既可以发送数据也可以接收数据。
2024-12-04 20:41:26
553
原创 【go】select 语句case的随机性
本身没有顺序匹配,但如果程序的逻辑导致某些通道更早满足条件,会显得像是按顺序执行。,并非按照顺序逐一匹配。为 Go 并发提供了灵活且公平的通道操作能力。通过随机匹配和阻塞机制,
2024-12-04 19:46:45
439
原创 【k8s】api server地址(集群cluster地址)
在上面的输出中,https://172.20.0.1:6443 就是 API Sever 的地址和端口(通常是 6443)。
2024-09-11 17:56:20
1602
原创 【linux】sar -d 磁盘性能
sar -d 命令是 sysstat 包的一部分,用于收集、报告和保存系统活动信息。使用 -d 选项时,sar 会提供有关系统磁盘活动的详细报告。这些数据有助于识别磁盘 I/O 瓶颈并了解系统磁盘使用情况。
2024-08-22 19:41:29
1126
1
原创 【k8s】--as=system:serviceaccount:demo-rbac:demo-user模拟某组件的某sa
as=system:serviceaccount:demo-rbac:demo-user模拟某组件的某sa在 Kubernetes 中,kubectl 命令提供了一个 --as 参数,用于临时模拟以指定的用户身份执行命令。这个功能可以帮助你测试和验证某个用户或服务账户的权限。
2024-08-16 13:51:21
1192
原创 【k8s】pod和serviceaccount关系
Pod 和 ServiceAccount 的联系体现在权限管理和安全控制上。通过 ServiceAccount,你可以控制 Pod 如何与 Kubernetes API 服务器交互,授予它们执行任务所需的最小权限,从而增强集群的安全性和管理性。
2024-08-15 18:59:41
1437
1
原创 【k8s】serviceAccount、role、RoleBinding入门示例
RBAC(基于角色的访问控制,Role-Based Access Control)是Kubernetes中用于管理权限的机制。如果设置正确,这个命令会返回命名空间中的Pod列表。你会看到一个错误,表明没有删除Pod的权限。
2024-08-15 14:03:15
687
原创 【k8s】 busybox镜像、挂载volume卷
busybox是一个包含了nslookup,ping,wget等网络处理命令的Pod容器(不含curl命令),它的体积非常小,适合做一些容器内的网络调试。即创建一个docker ,进去执行 ping 命令等。
2024-05-23 15:44:30
875
1
原创 【k8s】存储 pv 参数列表
PV 持久卷是用插件的形式来实现的。pv资源类型不是通过统一的type='xxx’进行区分的,而是直接使用特定的属性,例如上面的local 就是 表示local pv。
2024-05-23 11:31:38
614
原创 【k8s】kubernetes更新操作详解--kubectl apply(patch、replace)
看了上述的介绍,大家应该对 K8s 更新机制有了一个初步的了解了。接下来想一想,既然 K8s 提供了两种更新方式,我们在不同的场景下怎么选择 update 或 patch 来使用呢?这里我们的建议是:如果要更新的字段只有我们自己会修改(比如我们有一些自定义标签,并写了 operator 来管理),则使用 patch 是最简单的方式;
2024-05-16 09:52:57
2550
原创 【k8s】kubectl replace命令
使用配置文件或stdin来替换资源。支持JSON和YAML格式。如果替换当前资源,则必须提供完整的资源规范。
2024-05-13 17:04:25
521
原创 【磁盘】用 gdisk 新增分区、删除分区
不需要计算 sector 的数量,gdisk 会根据你填写的数值, 直接计算出最接近该容量的扇区数!注意设置 Last sector,是设置结束的地方,这样 和 这个地方和 First sector直接的值,就是新分区的大小。我们不需要自己去计算扇区号码,通过 +容量 的这个方式, 就可以让 gdisk 主动去帮你算出最接近你需要的容量的扇区号码喔!如果你是按照鸟哥建议的方式去安装你的 CentOS 7,那么你的磁盘应该会预留一块容量来做练习的。如果一切的分区状态都正常的话,那么就直接写入磁盘分区表吧!
2024-05-09 22:25:59
2387
原创 【k8s】API Group 群组(kubectl api-resources)
在使用k8s进行服务的部署过程中我们会使用到Deployment、Service、Pod等资源,在 yaml 文件中我们需要指定对应的 API 版本,我们可以通过访问相应的接口来管理相应的资源信息,在 k8s 中为了提高 API 的可扩展性,采用了 API Groups 进行标识这些接口,在 client-go 源码中就是通过指定的 API Groups 来访问 k8s 集群的,这里向大家介绍 API Groups 都有哪些,希望对你有帮助。
2024-04-30 16:49:54
1076
原创 DHCP是什么意思 路由器中DHCP服务器怎么设置?
DHCP是什么意思?很多朋友在路由器设置中,都会看到有一项“DHCP服务器”设置功能,而很多朋友对这个功能不太了解,也不知道怎么设置。其实,对于普通用户来说,无需去单独设置路由器DHCP服务器功能,默认就好,不过下面小编还是带大家介绍下DHCP是什么,希望对大家了解路由器功能有所帮助。
2024-04-14 14:02:42
1988
1
原创 route路由命令、ip route命令、default默认路由(0.0.0.0 )、直连路由
也就是说不带H参数时,表示是一个网段地址,即多个地址,此时route add -net 命令需指定掩码参数。注意:这个网关不是随便填的,必须是一个真实存在的能通的,例如你的网卡必须有一个连接到某个3层路由的网线,否则会报 Network is unreachable。host类型时,单个地址,掩码 固定位255.255.255.255,也可以不填,自动补为255.255.255.255(ipv4时)(不包括 loopback)。-4|-6 ,表示是 ip4 | ipv6,可以为空,默认是ipv4。
2024-04-14 02:40:38
24596
3
原创 ifconfig用法 、默认掩码
现在一些旧的命令由于功能上有欠缺,已经逐渐被新命令取代。旧命令新命令ifconfigip addrrouteip routeip link。
2024-04-13 15:18:03
2674
原创 【linux】awk命令
BEGIN 是 AWK 的关键字,因此它必须是大写的。不过,请注意,开始块部分是可选的,你的程序可以没有开始块部分。在 do-while 循环中,无论条件是真是假,循环语句至少执行一次,执行后检查条件真假。在主体块中,AWK 每读入一行就将读入的内容输出至标准输出流中,一直到整个文件被全部读入为止。Do-While 循环与 While 循环相似,但是 Do-While 的条件测试放到了循环的尾部。默认情况下,AWK 命令是针对于每一行输入,但是我们可以将其限制在指定的模式中。此变量表示当前记录的行号。
2024-04-10 20:27:38
1734
原创 【Linux 】查看veth-pair对的映射关系(查看命名空间)
ip netns add netns199 //新建一个命名空间可以看到一个名称叫做netns199 的命名空间,其 id为3。
2024-03-28 23:19:02
757
原创 yaml 语法和在线解析工具
Yaml是一种可读性高的数据标记语言,Yaml文件是一种配置文件,一般主要用于存储全局配置信息等,可存放不同类型的数据,如列表,字典等。
2024-03-22 22:29:58
4632
原创 【k8s】K8S中的cordon、uncordon和drain 冻结节点、驱离pod
Kubernetes(K8s)中使用Kubectl 命令行工具管理 Kubernetes 集群。kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指定其它 kubeconfig 文件。本文主要介绍Kubernetes(K8s)中kubectl cordon, drain, uncordon 常用命令。1、Kubectl语法。
2024-02-28 16:34:59
4351
1
原创 【k8s】k8s容器状态Terminating无法删除
若Pod的状态为Terminating,说明此Pod正处于关闭状态。Pod停留在Terminating状态一段时间后会被自动删除。若Pod一直停留在Terminating状态,则:1、判断是否为k8s和docker容器状态不一致问题造成;2、判断 Pod 上是否有 finalizers ,如果有需要确认是否是有防止删除的保护;3、判断节点是否出现 NotReady,节点如果处于NotReady,此节点上出现 Pod 状态 Terminating 是预期中的行为。
2024-02-28 14:23:13
1475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人