自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 收藏
  • 关注

原创 执行: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 4814

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

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

原创 kubelet 创建 pod 过程

kubelet 的重要性不必多说,下面放前些日子读源码画的一张简单的 pod 创建流程图. 欢迎大家批评、指点

2019-02-13 17:50:17 739 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 22912 19

原创 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 20629 4

原创 Golang 中的切片

数组切片上一篇我已经提过数组的特点:即数组的长度在定义之后无法修改;数组是值类型,无法满足我们需要引用传递.Go 语言提供了切片来弥补数组的不足!从底层的实现角度来看,数组实际上仍然使用数组来管理元素,基于数组切片添加了一系列的管理功能,可以随时动态扩充存放空间,并且可以随意传递而不会导致管理的元素被重复复制.1:创建数组切片func main(){ //定义数组 var array...

2018-11-29 14:53:51 467

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

原创 Kubernetes集群搭建Dashboard,Website访问

DashboardDashboard是基于Web的Kubernetes用户界面。我们可以使用Dashboard将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。还可以使用Dashboard来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如部署,作业,守护进程等)。例如,我们可以使用部署向导扩展部署,启动滚动更新,重...

2018-11-09 12:04:23 1146

原创 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 6596 1

原创 Kubernetes核心概念及核心组件使用与理解

什么是Kubernetes?Kubernetes是一个可移植性,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明性配置和自动化管理。它拥有庞大,快速发展的生态系统。谷歌在2014年开源了Kubernetes项目。Kubernetes以谷歌在大规模运行生产工作负载方面的15年经验为基础,结合社区的最佳想法和实践。 1.kubernetes是什么意思? 2.我们为什么需要kubern...

2018-11-06 11:07:52 733

原创 Go语言之异常处理

go语言异常的抛出是使用 panic 和 recover 协同处理的,相比于 java 语言的 throws、throw、try、catch、finally, 可以说是非常的少了。1.panicpanic 是 go 语言的内建函数,为了报告运行期间的错误,该函数用于停止当前的控制流程并引发一个运行时恐慌,可以接受任意类型的参数值,不说通常是 string 或者 error 类型,因为这样更容易...

2018-10-30 11:49:57 436

原创 使用 go-control-plane 自定义服务网格控制面

动态配置的方式是在内存中加载配置,不会更新到静态的文件中。更高级、复杂的用法可以参考istio;具体来说pilotwatch集群中的服务、端点、配置等资源的变化。当检测到这些资源的变化时,pilot会生成新的配置,并通过xDS API将更新推送到相应的Envoy实例,从而实现动态配置和管理服务网格中的流量控制和路由规则。这样可以确保Envoy始终具有最新的服务发现信息和路由配置。源码目录 https://github.com/istio/istio/tree/master/pilot。

2024-06-27 16:02:26 1088

原创 使用 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 180

原创 golang 生成 xlsx 文件

【代码】golang 生成 xlsx 文件。

2024-05-17 15:57:27 112 1

原创 Jenkins GitSCM 插件设置浅克隆

如何在流水线脚本中设置浅克隆。

2024-04-09 17:35:55 217

原创 golang clickhouse 错误 invalid settings. use SetMaxIdleConns,SetMaxOpenConns,SetConnMaxLifetime

判断是否设置了这三个参数中的任何一个,如果使用了就会抛出错误,不理解提供了。顺利通过),然后通过方法设置即可。稍微往底层翻开看了一下,发现在。后续的修改办法,第一步就是现在。在创建连接时出现了这个错误。中删除掉这三个参数(先让。的时候限制了这样使用。

2024-03-12 15:57:51 218

原创 神策 logagent 封装镜像

偶然需要使用到神策的 logagent 来读数据,发现官网只提供了二进制的部署方式,所以封装了镜像,有需要的话可以直接使用。

2024-03-01 15:49:20 212

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

原创 go mod tidy 中遇到的错误

所以修复方法也是相当简单,将依赖的版本使用。目前依赖的版本是不包含这个包的。分支还是存在这个目录的,但是在。从输出日志可以看出是由于。层层调用,最后调用到了了。从上游github来看。分支这个目录就被删除了。关键字替换为实际的版本。

2023-11-30 14:19:04 1238

原创 阿里云 K8s PVC 绑定 StorageClass 申领 PV 失败

发现在 PVC 中指定的云盘大小不符合规范,不同类型云盘有最小容量的限制,例如,高效云盘和SSD云盘要求最小 20 GiB。我也懒得更新,所以就创建了一个类型是云盘的 StorageClass。但是在创建 pvc 之后发现一直是。然后我的 PVC 申领的是 1GB 所以就导致了动态创建 PV 失败。状态就查询了一下日志,然后看到很多下面这种错误。错误场景: 因为阿里云没有默认的。

2023-08-17 11:36:37 1264

原创 Git push 到 github 出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 错误修复

保存的认证过期了,平时通过 ssh 连接到服务器之后服务器销毁再创建同样会出现了这样的问题,见怪不怪。推送代码时抛出了以下错误日志。原因八九不离十大概率是客户端。

2023-05-17 15:20:00 368

原创 Golang Kubernetes yaml 合规性校验

文件之前没有任何校验,导致发布之后。保存之前先进行合规性校验。

2023-05-16 18:46:19 353

原创 GRPC 程序在 Kubernetes 中的负载均衡

本文的背景使用的是 kratos 框架。

2023-05-10 16:36:37 1115

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

原创 Keycloak 集成 grafana 出现错误 resteasy003210 解决办法

grafana 结合 keycloak 实现单点登录踩坑总结

2023-02-01 17:08:48 720

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

原创 kubernetes volumeMounts 的目录容器内无法写文件

kubernetes volumeMounts 的目录容器内无法写文件

2022-10-28 11:10:49 1074

原创 Golang 使用 gorm 错误: reflect: reflect.Value.Set using unaddressable value

using unaddressable value

2022-10-13 17:32:38 3451

原创 Golang 处理 XML version 1.1 数据

xml version 1.1 to go struct

2022-09-20 10:47:17 412

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

原创 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 1798 2

原创 ElasticSearch Operator 使用 http 协议

背景:使用 ElasticSearch Operator 来部署 ElasticSearch 的话由 Operator 创建的 svc 的类型是 https,但是某些情况下可能我们并不想使用 https 协议。所以这个时候我们需要把 https 更新为 http 协议。官方描述curl -u "elastic:$PASSWORD" -k "https://localhost:9200"{ "name" : "quickstart-es-default-0", "cluster_name" :

2022-05-05 11:07:33 983

原创 Istio 使用 discoverySelectors

背景Istio 控制平面默认会 watch 并且 push(更新策略)集群中所有命名空间中的所有Kubernetes 资源。通俗的话我们在任意一个命名空间删除一个 svc 或者其他资源,Istio 都会帮我们同步到所有的边车。被称之为“全量同步”而大多数用户是不希望这样的。所以我们需要一个能力来限制 istio 只处理我们关注的命名空间,以便 Istio 控制平面只处理这些命名空间的资源。限制命名空间的能力使 Istiod 能够 watch 和 push 更少的资源和相关的变化到 sidecar,从而提

2022-04-18 16:58:54 405

原创 Istio Pod 禁用自动注入

当前场景,使用 istio 的自动注入能力,但是又希望过滤指定的 pod 不注入。当前测试 Pod 列表[root@node115-254871 ~]# kubectl get pod -n mesh-skyNAME READY STATUS RESTARTS AGEhttpbin-v1-77d968d988-7qcfb 1/1 Running 0 3m46shttpbin-v2-77

2022-04-18 15:34:40 1009

原创 RabbitmqCluster 磁盘不可用,disk space告警

问题描述:在 k8s 集群中使用 rabbitmq operator 来安装使用 mq 集群,使用一段时间后发现往 mq 中写不了数据了,登录 ui 就发现了截图中的错误。当剩余磁盘空间低于确定的阈值时,rabbitmq 会阻塞生产者,这样可以避免因持久化的消息持续换页而耗尽磁盘空间导致服务崩溃。修复方法,日常 google 搜索一下看是否有人遇到。然后发现很多博客描述需要设置 disk_free_limit.absolute 这个字段。这样就好办了看了一下 RabbitmqCluster 的官方文

2022-04-18 11:07:15 2978

原创 Istio 访问 ServiceEntry host 无法解析

场景:现在有一个 httpbin 服务直接通过 service entry 注册到网格内部,但是使用确无法解析到域名,下面是实际的错。现在就要解决问题/ # curl httpbin.remote:30655/ipcurl: (6) Could not resolve host: httpbin.remote首先检查有没有配置 DNSapiVersion: install.istio.io/v1alpha1kind: IstioOperatorspec: meshConfig: d

2022-03-08 15:06:58 1245

原创 Golang 基于数组、链表实现队列

使用数组、队列实现简单的队列能力Top() 返回队列第一个元素Add() 入队Remove(data int) 出队package mainfunc main() { lq := NewListQueue() lq.Add(10) lq.Add(20) lq.Add(25) lq.Add(30) lq.Add(100) lq.Remove() lq.Remove() lq.Remove() lq.Remove() fmt.Println(lq.size) lq.Ad

2022-02-25 14:29:31 205

原创 Golang 好用的 gzip 压缩方式

下面方法是在我在开发 prometheus 过程中,发现 prometheus config 的压缩方法,很好用。// copy from pkg/prometheus/operator.go line.1501func (*PrometheusJob) zip(b []byte) []byte { var buf bytes.Buffer if err := gzipConfig(&buf, b); err != nil { return nil } return buf.By

2022-02-22 10:51:40 1667

原创 k8s 启动 elasticsearch 失败: [failed to bind service]

具体的错误信息k logs -f elasticsearch-0 -n kube-system"stacktrace": ["org.elasticsearch.bootstrap.StartupException: ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];","at org.elasticsearch.boo

2022-02-17 14:46:00 3953

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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