自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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】scc权限和内置的 restricted、anyuid、privileged

【代码】【无标题】

2025-01-09 20:20:48 978

原创 【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

原创 【k8s】访问etcd

export.sh。

2024-12-21 17:11:19 459

原创 【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

原创 【go】查询某个依赖是否存在于这个代理

如果模块不存在或无法找到,会返回错误。

2024-11-25 16:11:09 583

原创 【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】存储 pvc 参数列表

注意:pvc没有亲和性参数。

2024-05-23 14:03:18 625

原创 【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

转载 ip addr和ifconfig区别

ip addr和ifconfig都是用于配置和管理网络接口的工具。

2024-04-13 12:59:10 1088

原创 brctl 和ip link 操作网桥(Bridge)网卡

以上是常用的Linux桥接网卡命令,通过这些命令可以实现网卡间的桥接操作。

2024-04-10 22:16:02 3149

原创 【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

原创 VLAN的原理及配置

VLAN就是将网络从逻辑上划分为若按个小的网络,也就是虚拟局域网。

2024-03-27 20:53:49 869

原创 yaml 语法和在线解析工具

Yaml是一种可读性高的数据标记语言,Yaml文件是一种配置文件,一般主要用于存储全局配置信息等,可存放不同类型的数据,如列表,字典等。

2024-03-22 22:29:58 4632

原创 【sql】初识 where EXISTS

where EXISTS (子查询)多对多中通过中间表查对方列表。

2024-03-18 15:20:40 750

原创 【sql】深入理解 mysql的EXISTS 语法

先主后子。

2024-03-18 15:17:00 3666

原创 【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关注的人

提示
确定要删除当前文章?
取消 删除