常鱼
码龄5年
关注
提问 私信
  • 博客:130,694
    问答:333
    131,027
    总访问量
  • 56
    原创
  • 104,929
    排名
  • 3,463
    粉丝
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2019-07-10
博客简介:

kingu_crimson的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,427
    当月
    14
个人成就
  • 云原生领域新星创作者
  • 获得82次点赞
  • 内容获得15次评论
  • 获得176次收藏
  • 代码片获得3,014次分享
创作历程
  • 1篇
    2024年
  • 20篇
    2023年
  • 34篇
    2022年
  • 3篇
    2021年
成就勋章
TA的专栏
  • k8s
    31篇
  • Kubernetes二次开发
    15篇
  • rust
    1篇
  • 说明书
    1篇
  • 容器
    7篇
  • CI/CD
    1篇
  • CRI
  • 基础运维
    6篇
  • 踩坑
    8篇
  • aws
    3篇
  • golang学习之路
    23篇
  • prometheus
    2篇
  • 阿里云
    1篇
  • 分布式存储
    1篇
  • django
    1篇
  • vue
    3篇
  • JavaScript
    1篇
兴趣领域 设置
  • 云原生
    kubernetes云原生
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 关注/订阅/互动
  • 资源
搜TA的内容
搜索 取消

eBPF可观测之网络流量控制和管理traffic control浅尝

首先发表一个"暴论"eBPF在可观测方面的应用,就是各种google。不需要学习内核,只要掌握ebpf开发套路。好比你开发 web 开发网站, 你了解socket 底层和内核吗?一样不了解。知道怎么调用就行了。而且 eBPF 的开发也没多少复杂度, 更多的是 在内核态拦截(简化的c语言) 内核数据(不管是网络数据还是tracepoint数据), 最终都是要发给用户态(可以理解为java、golang),然后用户态具体做业务处理。所以c语言也不需要怎么学,学了也没啥用。
原创
发布博客 2024.05.28 ·
1178 阅读 ·
26 点赞 ·
0 评论 ·
25 收藏

[rust]如何将DataFrame转换成Json Trait

这段代码的目的是将一个数据框(DataFrame)中的数据转换为一个包含多个哈希映射(HashMap)的向量(Vec),其中每个哈希映射代表数据框中的一行数据。通过循环遍历数据框的每一行,将每一行的数据转换为一个哈希映射,并将这些哈希映射添加到结果向量中,最终得到了一个包含整个数据框数据的向量。,其中每个元素都是一个哈希映射,该哈希映射将列名作为键(key),将对应行中的数据作为值(value)。返回数据框的行数,循环将从 0 开始,逐步递增,直到达到最后一行。这是一个循环,用于遍历数据框的每一行。
原创
发布博客 2023.12.28 ·
837 阅读 ·
9 点赞 ·
0 评论 ·
7 收藏

CoreDns在K8S中的作用原理概述

在Kubernetes集群中,CoreDNS通常作为默认的DNS插件运行在kube-system命名空间中,它通过监听ClusterIP类型的Service的DNS请求,并将其解析为对应的Pod IP地址。Service域名解析:当一个Pod或其他服务访问Kubernetes集群中的另一个Service时,它会使用目标Service的名称作为域名进行解析。插件会根据请求中的域名查找对应的Service,并将其解析为对应的Pod IP地址。的Service,它会发起一个DNS请求,将。
原创
发布博客 2023.12.01 ·
697 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

kubectl rollout 实现金丝雀发布的流量控制策略

金丝雀发布是一种逐步引入新版本应用程序的策略,以减少潜在风险。本文介绍如何使用Kubernetes的kubectl rollout pause和kubectl rollout resume命令,结合修改Deployment的maxSurge和maxUnavailable字段,来实现金丝雀发布的流量控制。通过反复执行这些步骤,我们可以逐步引入新版本,并监控其性能和稳定性,最终完成金丝雀发布。
原创
发布博客 2023.11.28 ·
339 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【玩转client-go】使用client-go从POD拷贝文件出来

先讲思路,通过client-go RestClient模拟kubectl exec 的手法,结合容器镜像里的tar命令和golang原生tar包,作为管道的输入输出,实现文件的数据流拷贝,以下是具体做法。循环读取,并把归档输出写入新创建的文件,当出现End of File(文件结束符)错误,代表输入已完成,没有可读取的输出。tar cf - index.html这条命令的含义是创建一个tar归档文件,并将名为"index.html"的文件加入到归档中。首先是一段将文件内容输出到标准输出的代码。
原创
发布博客 2023.11.27 ·
628 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

解决Spring Boot应用在Kubernetes上健康检查接口返回OUT_OF_SERVICE的问题

通过自定义和配置探针的HTTP路径,我们成功解决了Spring Boot应用在Kubernetes上健康检查接口返回的问题。现在,健康检查接口返回正确的健康状态,并且探针路径也与公司的重定向配置保持一致。这样,我们可以确保应用在Kubernetes环境中的健康检查正常运行,同时满足公司的需求。
原创
发布博客 2023.11.20 ·
1634 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

在 macOS 上安装 Rust 开发环境并运行第一个程序的详细步骤

通过按照上述步骤,在 macOS 上安装 Rust 开发环境,并创建和运行第一个 Rust 程序。如果您有任何其他问题,请随时提问。
原创
发布博客 2023.09.14 ·
3999 阅读 ·
2 点赞 ·
2 评论 ·
6 收藏

使用 panic 处理 Gin 中间件中的错误

总之,在 Gin 中使用错误处理和 panic 处理是非常重要的。通过正确地使用它们,我们可以确保我们的应用程序在遇到各种错误时都能够正确地处理它们,并向客户端返回恰当的 HTTP 响应。
原创
发布博客 2023.04.04 ·
1513 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

实现ConfigMap热更新的三种常用方法:使用sidecar、CI脚本和自定义Controller

在config-reloader容器中,我们指定了ConfigMap的watched-dir和volume-dir,并指定了webhook-url为localhost:5000/-/reload,当ConfigMap发生变化时,config-reloader会向该地址发送一个HTTP POST请求,触发应用程序的重新读取。其次,由于Controller需要监听ConfigMap的变化事件,并更新对应的Pod,这可能会增加集群的负载,影响集群的稳定性。首先,需要编写CI脚本,配置复杂,需要一定的编程能力。
原创
发布博客 2023.04.03 ·
3773 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

覆盖优先级关系:Dockerfile 和 docker run 中的 ENTRYPOINT 和 CMD 指令

需要注意的是,如果在 Dockerfile 中同时指定了 ENTRYPOINT 和 CMD 命令,则在运行容器时可以通过命令行参数来覆盖 CMD 命令,但无法覆盖 ENTRYPOINT 命令,除非使用。Dockerfile 中的 ENTRYPOINT 和 CMD 指令定义了容器的默认启动命令。但是,在运行容器时,这些指令可以被 Docker run 命令行参数覆盖。该 Dockerfile 定义了一个以 Ubuntu 为基础镜像的容器,并将。作为 ENTRYPOINT 命令,将。作为 CMD 命令。
原创
发布博客 2023.04.03 ·
2686 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

【玩转client-go】管理 Kubernetes 中资源删除:Finalizer 和 DeletionTimestamp

Finalizer 和 DeletionTimestamp 是 Kubernetes 中管理资源删除的重要机制。控制器可以使用 Finalizer 和 DeletionTimestamp 安全地管理资源对象的删除,并在必要时执行某些清理操作。在处理资源对象时,务必考虑 Finalizer 和 DeletionTimestamp 的作用,并确保正确使用它们,以避免意外删除资源对象。
原创
发布博客 2023.04.03 ·
1305 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【玩转client-go】解析 Kubernetes 资源的 YAML 数据的 Go 函数实现

函数的参数cf是 Kubernetes 的客户端配置信息,typ和name分别代表所要获取资源的类型和名称。函数返回的是该资源的 YAML 数据的字节数组和可能出现的错误。
原创
发布博客 2023.04.03 ·
1086 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【玩转client-go】如何获取 Kubernetes API 客户端的 *rest.Config 对象

本文介绍了四种获取 Kubernetes API 客户端的对象的方法,分别是使用kubeconfig文件、使用 Kubernetes 集群内的 Service Account、直接指定 API Server 的地址和认证信息、以及使用方法。不同的方法适用于不同的场景,开发者可以根据自己的需求来选择使用。
原创
发布博客 2023.04.02 ·
1701 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【玩转client-go】通过包含多个集群信息的Kubernetes配置文件获取所有集群的ClientSet

总结来说,通过上述代码示例,我们可以学习到如何通过包含多个集群信息的Kubernetes配置文件获取所有集群的rest.Config,以及如何使用rest.Config对象创建Kubernetes客户端对象并获取每个集群中的Namespace列表。这对于管理多个Kubernetes集群的开发人员来说,是非常实用的技能。
原创
发布博客 2023.04.02 ·
1126 阅读 ·
1 点赞 ·
3 评论 ·
0 收藏

结合 Casbin 对 http 请求做 RBAC 鉴权以及添加请求路由参数支持

在本文中,我们将介绍如何结合 Casbin 对 HTTP 请求进行基于角色的访问控制 (RBAC) 鉴权,并支持请求路由参数。我们将使用 Go 语言中的 Casbin 库。
原创
发布博客 2023.03.28 ·
867 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

“invalid character ‘\x1f‘ looking for beginning of value“ 报错解决方法

这个问题来源于我在开启kubectl proxy代理的时候,通过kubectl apply -f xxx.yaml向代理提交一个configMap对象,返回了 "Error while proxying request: invalid character '\x1f' looking for beginning of value" 的报错。
原创
发布博客 2023.03.12 ·
2097 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

code-generator 使用介绍——CRD客户端生成工具

ops-operator是我的项目名称,extensions是GVK的Group中的抬头,operation是我的CRD的名称,v1则是GVK的Version。然后需要根据CRD的申明字段做一些客制化的修改,这里的代码主要是用于Controller调用client-go过程中对对象的一些反序列化操作,以及对外暴露的注册到Manager 的Scheme的函数方法。此外,查看生成的代码目录,还支持Clientset以外的informer、lister的扩展。要先生成整体的客户端代码,首先需要打下框架。
原创
发布博客 2023.03.07 ·
970 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

controller-runtime搭建operator开发环境

首先下载相应的go pkg接下来需要创建控制器和ManagerOperator的本质是一个可重入的队列编程模式,而Manager可以用来管理Controller、Admission Webhook,包括访问资源对象的client、cache、scheme、提供了一个简单的依赖注入机制、优雅关闭的信号处理机制等。 参见官方文档中的示例代码opsController.go先监听官方资源,比如Ingress(后续需要在Manager中指定),因此将调谐函数补全为当有一个新的Ingress对象被提
原创
发布博客 2023.03.07 ·
753 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

nerdctl不完全使用指南(开发者)

由于懒是我们的宗旨,所以干脆直接在容器中构建,也即dind(docker in docker),从docker转containerd后,应该叫cinc了,这也是ci/cd pipeline里面的常用体位。开发调试,通常不需要ci/cd去做一个整个链路的编译打包镜像,一来耗时,二来可能需要上下游协作,增加了沟通和时间成本。本篇只要是描述在docker被取代后的一些开发者技巧。又因为众所周知的原因,本地编译好的可执行程序上传云服务器的速率非常慢,不如直接同步服务器上的代码,在服务器上直接完成编译。
原创
发布博客 2023.03.06 ·
884 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

K8S中Pod通过域名访问Service失败,提示bad address

可以看到Pod内部的resolv.conf 内容,其中nameserver指定DNS解析服务器IP为 “10.96.0.2” ,这个IP地址正是Kubernetes集群CoreDNS的Service “kube-dns” 的 cluterIP,说明当Pod内部进行域名解析时,确实是将查询请求发送到Service “kube-dns” 提供的虚拟IP进行域名解析 既然Pod 中 DNS配置文件没问题,且CoreDNS也没问题,会不会是Pod本身域名解析不正常呢?
转载
发布博客 2023.02.17 ·
2927 阅读 ·
3 点赞 ·
1 评论 ·
9 收藏
加载更多