- 博客(184)
- 收藏
- 关注
原创 执行:kubectl get pods 错误:Unable to connect to the server: x509
执行:kubectl get pods,抛出问题,具体抛出内容如下:Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate...
2019-06-27 10:30:59
5131
原创 K8s 中的 CNI 是怎么样执行的?
K8s 中的 CNI 是怎么样执行的?源码基于 kubernetes release 1.13我们在说之前不妨先了解一下什么是 CNI?CNI 又是做什么用的?我们该如何使用 CNI?CNI (Container Network Interface), a Cloud Native Computing Foundation project, consists of a specificat...
2019-03-11 17:00:51
1951
原创 kubctl 获取 pod 元数据
因为之前一直执行过类似的操作,这里参考了这位兄弟的文章非常感谢https://www.cnblogs.com/cocowool/p/kubernetes_get_metadata.html咱们这里讲最简单的方式:1)执行:kubectl cluster-info 查询集群 ip 信息root@ubuntumaster001:~# kubectl cluster-infoKubernete...
2019-02-28 15:40:33
847
原创 kubelet 创建 pod 过程
kubelet 的重要性不必多说,下面放前些日子读源码画的一张简单的 pod 创建流程图. 欢迎大家批评、指点
2019-02-13 17:50:17
851
1
原创 Kubernetes error: taint “node-role.kubernetes.io/master:“ not found
首先这个问题是由什么造成的:当我们创建单机版的 k8s 时,这个时候 master 节点是默认不允许调度 pod 的,我们需要执行 kubectl taint nodes --all node-role.kubernetes.io/master- 这个命令将 master 标记为可调度.如果执行报错:taint "node-role.kubernetes.io/master:" not f...
2019-02-11 12:02:51
24109
20
原创 kubectl get 报错:Unable to connect to the server: dial tcp 10.20.2.224:6443: connect: no route to host
具体输出如下:当我执行:kubectl get nodes,出现如下错误: Unable to connect to the server: dial tcp 10.20.2.224:6443: connect: no route to host原因加入第二个 Master 节点时比较急,并没有执行:**$ mkdir -p $HOME/.kube$ sudo cp -i /etc/...
2018-12-19 10:06:07
21189
4
原创 Golang 中的切片
数组切片上一篇我已经提过数组的特点:即数组的长度在定义之后无法修改;数组是值类型,无法满足我们需要引用传递.Go 语言提供了切片来弥补数组的不足!从底层的实现角度来看,数组实际上仍然使用数组来管理元素,基于数组切片添加了一系列的管理功能,可以随时动态扩充存放空间,并且可以随意传递而不会导致管理的元素被重复复制.1:创建数组切片func main(){ //定义数组 var array...
2018-11-29 14:53:51
609
原创 Go语言遍历字符串
go预言支持两种方式遍历字符串字节数组方式遍历:func main(){ str := "hello,世界" num := len(str) for i := 0; i< num ; i++ { fmt.Println(str[i]) }}运行:10410110810811144228184150231149140可以看出,这个字符串的长度...
2018-11-29 10:44:05
1001
原创 Kubernetes集群搭建Dashboard,Website访问
DashboardDashboard是基于Web的Kubernetes用户界面。我们可以使用Dashboard将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。还可以使用Dashboard来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如部署,作业,守护进程等)。例如,我们可以使用部署向导扩展部署,启动滚动更新,重...
2018-11-09 12:04:23
1345
原创 kubectl get 报错:possibly because of "crypto/rsa: verification error" wkubernetes"
具体输出如下:当我执行:kubectl get pod --all-namespaces -o wide,出现如下错误: Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" wkub...
2018-11-07 10:00:51
6861
1
原创 Kubernetes核心概念及核心组件使用与理解
什么是Kubernetes?Kubernetes是一个可移植性,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明性配置和自动化管理。它拥有庞大,快速发展的生态系统。谷歌在2014年开源了Kubernetes项目。Kubernetes以谷歌在大规模运行生产工作负载方面的15年经验为基础,结合社区的最佳想法和实践。 1.kubernetes是什么意思? 2.我们为什么需要kubern...
2018-11-06 11:07:52
925
原创 Go语言之异常处理
go语言异常的抛出是使用 panic 和 recover 协同处理的,相比于 java 语言的 throws、throw、try、catch、finally, 可以说是非常的少了。1.panicpanic 是 go 语言的内建函数,为了报告运行期间的错误,该函数用于停止当前的控制流程并引发一个运行时恐慌,可以接受任意类型的参数值,不说通常是 string 或者 error 类型,因为这样更容易...
2018-10-30 11:49:57
580
原创 k8s NodePort 类型 Service 无法访问 plugin type=“flannel“ failed (add)
先排除法将service转发到本机,从本机发起请求,这样可以绕过nodeport的iptables规则,然后验证是否可以请求,port-forward使用apiserver代理直接与pod通信。我本地环境使用的是flannel, 接下来就是检查flannel的配置和状态。请求可以正常响应说明端口转发工作正常,服务本身没问题。端口的所有 TCP 流量转发到后端的 dcgm-exporter Pod。这里出现问题的原因是 Pod IP 分配冲突导致的。查看iptables规则转发最终的位置。
2025-10-15 15:23:22
487
原创 Rancher 新部署登陆问题 Invalid username or password
新部署的 Rancher 出现无法登录的情况,提示 “Invalid username or password” 而且找不到 bootstrap-secret。我不确定是不是我创建 rancher 导致的问题, 我的创建命令是这样的。会随机创建管理员名称和密码,但是如果你的管理员用户已经存在则不会创建。但是我执行之后发现根本没有 secret。登陆之后提示查看 secret。然后使用新密码登陆还是不可以。
2025-09-28 18:03:18
464
原创 NVIDIA Container Toolkit 部署(容器引擎 containerd)
本文档介绍如何在已安装 containerd 的系统上安装和配置 NVIDIA Container Toolkit。
2025-09-27 15:25:37
402
原创 Nvidia Device Plugin No devices found(容器引擎是 containerd)
大多数部署的同学都是跟随官方文档使用 nvidia-ctk 来部署。但是实际这个命令是有问题的,例如在 github 的文档中就表示。很多时候都没有生成 CDI 配置,也会出现这个错误。我的部署方式是官方配置。
2025-09-27 15:21:46
392
原创 k8s node 节点加入 matser 错误 cannot construct envvars
添加到 kueblet 的 config 配置中,重启之后发现还是没有解决,到这里感觉可能不是 kubelet 的问题。issues 中发现了相似的问题,issue 里面描述的大致内容是把 k8s 升级到。后遭遇到了这个问题,原因是 k8s 版本和 flannel 之间不兼容造成的问题。所以抱着死马当活马医的态度,我重置了集群并且安装了低版本,发现果然没这个问题。验证是否可以请求,也没有问题,就是先排除和 apiserver 的通信问题。最后的最后僵持了一个下午,在。发现没有起作用,还有其他办法。
2025-09-27 10:55:18
567
原创 k8s kubelet 错误 Network plugin returns error: cni plugin not initialized
是有 cni 配置的,既然找不到,那就重启一下 containerd(我使用的是 containerd)检查cni配置和cni的二进制文件,发现也都没有缺少什么,下一步检查。flannel 相关的 pod 都很正常可以进行下一步检查。发现cri存在错误日志,但是我们上面已经检查了。重启之后等运行完毕,也需要重启 kubelet。
2025-09-27 10:23:17
601
原创 k8s etcd 运行错误 failed to find plugin “flannel“ in path [/usr/lib/cni]
表现形式为 coredns 一直处于 ContainerCreating 状态。位置,这个可能就是问题的根源,我并没有明确安装部署。describe 可以看到一些错误的事件。可能是其他服务无意间下载到了这个目录。如果你没有 cni,还是需要下载的。解决方案创建符号链接。
2025-09-25 10:27:12
362
原创 macos m1 芯片无法安装kubeedge keadm 解决办法
官方提供的几种下载方式,不论是下载二进制文件还是运行镜像从容器中复制到外面文件都无法执行。在尝试下载不同的包无法使用之后,最后通过下载源码编译解决问题。然后可以看到输出了一些日志。
2025-09-18 09:10:44
313
原创 使用 go-control-plane 自定义服务网格控制面
动态配置的方式是在内存中加载配置,不会更新到静态的文件中。更高级、复杂的用法可以参考istio;具体来说pilotwatch集群中的服务、端点、配置等资源的变化。当检测到这些资源的变化时,pilot会生成新的配置,并通过xDS API将更新推送到相应的Envoy实例,从而实现动态配置和管理服务网格中的流量控制和路由规则。这样可以确保Envoy始终具有最新的服务发现信息和路由配置。源码目录 https://github.com/istio/istio/tree/master/pilot。
2024-06-27 16:02:26
1938
原创 使用 tcpdump 在本机获取远程服务器的源 ip
tcpdump 查询源 ip场景程序中需要拦截远程服务器的 ip,在配置了远程服务器的公网 ip 地址发现一直不起作用,意识到可能地址被做了转换,所以在本机拦截报问来确认远程服务器的源 ip方法需要使用到两个命令:ping,tcpdump,ping 命令从远程机器发出请求,tcpdump 在本机用来捕获 ping 命令发来的 icmp 数据包远程服务器ping 47.xxx.xxx.128M1Pro ~ % ping 47.xxx.xx.128PING 47.xxx.xxx.128 (4
2024-06-14 15:58:16
496
原创 golang clickhouse 错误 invalid settings. use SetMaxIdleConns,SetMaxOpenConns,SetConnMaxLifetime
判断是否设置了这三个参数中的任何一个,如果使用了就会抛出错误,不理解提供了。顺利通过),然后通过方法设置即可。稍微往底层翻开看了一下,发现在。后续的修改办法,第一步就是现在。在创建连接时出现了这个错误。中删除掉这三个参数(先让。的时候限制了这样使用。
2024-03-12 15:57:51
464
原创 神策 logagent 封装镜像
偶然需要使用到神策的 logagent 来读数据,发现官网只提供了二进制的部署方式,所以封装了镜像,有需要的话可以直接使用。
2024-03-01 15:49:20
425
原创 go-redis 使用 redis 6.0.14 版本错误: consider implementing encoding.BinaryMarshaler
相关参考: https://stackoverflow.com/questions/60925203/cant-marshal-implement-encoding-binarymarshaler-go-redis-sdd-with-multiple 文中描述了数组的实现方式。看错误日志的描述,大概含义就是需要我们自己手动实现一个 json 的序列化。实例之后就出现了错误(他们之间只是版本不同)。版本并没有遇到错误,但是在切换。类似下面这样,即可修复。
2024-02-19 11:45:01
866
原创 go mod tidy 中遇到的错误
所以修复方法也是相当简单,将依赖的版本使用。目前依赖的版本是不包含这个包的。分支还是存在这个目录的,但是在。从输出日志可以看出是由于。层层调用,最后调用到了了。从上游github来看。分支这个目录就被删除了。关键字替换为实际的版本。
2023-11-30 14:19:04
1643
原创 阿里云 K8s PVC 绑定 StorageClass 申领 PV 失败
发现在 PVC 中指定的云盘大小不符合规范,不同类型云盘有最小容量的限制,例如,高效云盘和SSD云盘要求最小 20 GiB。我也懒得更新,所以就创建了一个类型是云盘的 StorageClass。但是在创建 pvc 之后发现一直是。然后我的 PVC 申领的是 1GB 所以就导致了动态创建 PV 失败。状态就查询了一下日志,然后看到很多下面这种错误。错误场景: 因为阿里云没有默认的。
2023-08-17 11:36:37
1602
原创 Git push 到 github 出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 错误修复
保存的认证过期了,平时通过 ssh 连接到服务器之后服务器销毁再创建同样会出现了这样的问题,见怪不怪。推送代码时抛出了以下错误日志。原因八九不离十大概率是客户端。
2023-05-17 15:20:00
516
原创 prometheus 安装错误: global scrape timeout greater than scrape interval
prometheus 错误: err="parsing YAML file /etc/prometheus/prometheus.yml: global scrape timeout greater than scrape interval"
2023-02-07 14:34:57
1348
原创 Keycloak 集成 grafana 出现错误 resteasy003210 解决办法
grafana 结合 keycloak 实现单点登录踩坑总结
2023-02-01 17:08:48
1139
原创 git add 错误: error: insufficient permission for adding an object to repository database .git/objects
error: insufficient permission for adding an object to repository database .git/objects
2022-11-09 18:43:18
734
原创 Golang 使用 gorm 错误: reflect: reflect.Value.Set using unaddressable value
using unaddressable value
2022-10-13 17:32:38
3929
原创 Istio 错误: 502 UPE upstream_reset_before_response_started{protocol_error}
502 UPE upstream_reset_before_response_started{protocol_error}
2022-06-15 09:57:23
2128
原创 Istio 从网关访问服务错误 503 NC cluster_not_found
背景:是这样的,我使用默认的 httpbin gateway 来测试一些服务,但是使用之后从网关访问不符合我的预期,所以简单看了一下原因。这里的 yaml 是官方提供的(我小改了一些修改了 vs 的范围,以及添加了 host)apiVersion: networking.istio.io/v1alpha3kind: Gatewaymetadata: name: httpbin-gatewayspec: selector: istio: ingressgateway server
2022-05-06 15:38:09
2607
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅