自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kuberlet服务启动报错:"Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup ...

这是因为kubelet的cgroup和docker的不一致所导致的,“kubelet cgroup驱动为systemd,而docker的为cgroupfs”,有两种决解决方式,方式一:修改docker的cgroup为systemd修改docker服务的配置文件,“/etc/docker/daemon.json ”文件,添加如下"exec-opts": ["native.cgroupdrive...

2023-09-13 17:27:00 1574

原创 k8s集群在扩容的是某个节点出现 Error querying BIRD: unable to connect to BIRDv4 socket

k8s集群在扩容的是某个节点出现 Error querying BIRD: unable to connect to BIRDv4 socket1、问题背景:原因是因为新扩容的机器在扩容之前安装过docker切和当前的版本相差较大:在k8s扩容的时候扩容完发现calico异常,describe查看事件后发现报错如下:发现 Kubernetes 容器集群中有一个节点出现 calico-no...

2023-09-11 09:53:00 652

原创 validator库参数校验若干使用技巧

validator库参数校验若干使用技巧本文介绍了使用validator库做参数家园的一些十分实用的使用技巧。包括翻译校验错误提示信息、自定义提示信息的字段名称、自定义校验方法等。validator库参数校验若使用技巧在web开发中一个不可避免的环境就是对请求参数进行校验,通常我们会在代码中定义请求参数相对应的模型(结构体),借助模型绑快捷的解析请求中的参数,例如gin框架中Bind和Sh...

2023-09-02 11:17:00 217

原创 在GIn框架中使用JWT

在gin框架中使用JWTJWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。什么是JWT?JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token 实现方式,目前多用于前后端分离项目和 OAuth2.0 业务场景下。为什么需要...

2023-09-01 20:16:00 109

原创 如何使用Docker部署 Go WEB应用

如何使用Docker部署 Go WEB应用本文介绍了如何使用Docker以及Docker-compose部署我们的Go Web程序。为什么需要使用Docker?使用docker的主要目标是容器化。也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机。想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很多的依赖环境或包,甚至对依赖的具体版本都有严格的要求,...

2023-08-21 15:30:00 122

原创 八、Web应用模式

8.1、web应用模式在开发Web应用中,有两种应用模式:前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的。前后端分离【把前端的界面效果(html,css,js分离到另一个服务端,python服务端只需要返回数据即可)】前端形成一个独立的网站,服务端构成一个独立的网站应用程序编程接口(Application Programming Interfac...

2023-07-27 22:36:00 36

原创 七、会话技术

7.1、会话技术在学习HTTP超文本传输协议的时候,就已经知道HTTP是一种无状态的传输协议,对于事务处理没有记忆能力。对于客户端浏览器发出的请求,Web服务器无法区分是不是源自通一个浏览器,所以,这时就需要额外的数据用于维持回话。7.1.1、Cookie1. Cookie是什么HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出...

2023-07-27 22:17:00 23

原创 使用zap接收gin框架默认的日志并配置日志归档

使用zap接收gin框架默认的日志并配置日志归档本文介绍了在基于Gin框架开发的项目中如何配置并使用zap来接收并记录gin框架默认的日志和如何配置日志归档。我们基于gin框架开发项目时通常都会选择使用专业的日志库来记录项目的日志,go语言常用的日志库有zap、logrus等。网上也有很多类似的教程但是我们该如何在日志中记录gin框架本身输出的哪些日志呢?gin默认的中间件首先我们...

2023-07-27 15:00:00 101

原创 在GO语言中项目中使用zap日志库

在GO语言中项目中使用zap日志库本文先介绍了GO语言中原生的日志库中使用,然后想继续介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档。在GO语言项目中使用zap日志库介绍在许多go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能:能够将事件记录到文件中,而不是应用程序控制台。日志切割-能够根据文件大小,时间或间隔等来...

2023-07-26 22:28:00 239

原创 calico报错son: cannot unmarshal string into Go struct field NetConf.mtu of type int].

于是describe查看宿主机的事件信息查看日志没有相关日志查看calico的相关配置文件值找到于是想着直接去修改calico的Configmap发现修改不成功便去查询宿主机映射的calico挂载文件把标记部分的string给成int去掉双引号,然后重启calico然后通过ansible分发到每台机器上ansible all -u app -m copy -a "src=/ro...

2023-07-25 13:25:00 94

原创 GO语言配置管理神器-Viper中文教程

Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。ViperViper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。鉴于viper库本身的README已经写的十分详细,这里就将其翻译成中文,并在最后附上两个项目中使用viper的实力代码以供参考安装go g...

2023-07-21 11:36:00 121

原创 关于go语言常量的那些事

相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。const 常量名[数据类型] = value项目实战常见场景数据类型可以忽略不写,Golang 编译器会⾃动推断出数据类型。 在使⽤时,要注意以下⼏点:数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串...

2023-07-19 13:59:00 18

原创 五、Gorm

5.1、gorm介绍是当今比较热门的 golang 的 orm 操作数据库的工具,使用上主要是把 struct 类和数据库表进行映射,操作数据库时无需手写 sql。本质就是提供一组函数来帮助我们快速拼接 sql 语句,尽量减少 sql 的编写。gorm文档和gorm中文文档安装包:go get -u gorm.io/gormgo get -u gorm.io/driver/mysql...

2023-07-17 11:48:00 45

原创 nvidia驱动安装和升级

安装GPU驱动之前建议升级内核,这里踩坑了 !!!英伟达驱动官网下载链接:https://www.nvidia.cn/Download/index.aspx?lang=cn安装gpu驱动安装相关依赖,需安装kernel-headeryum install kernel-devel gcc -y检查内核版本是否一致ls /boot | grep vmlinu...

2023-07-16 23:01:00 71

原创 卸载 Calico

删除 k8s 资源kubectl -n kube-system delete deploy calico-kube-controllerskubectl -n kube-system delete ds calico-nodekubectl -n kube-system delete cm calico-config# 删除 CRD 及相关资源kubectl get crd -o js...

2023-07-13 22:17:00 142

原创 四、Gin模板

四、Gin模板模板在web开发中⼴泛使⽤,它能够有效的将业务逻辑和页⾯逻辑分开,使代码可读性增强、并且更加容易理解和维护。 模板简单来说就是⼀个其中包涵占位变量表⽰动态的部分的⽂件,模板⽂件在经过动态赋值后,返回给⽤户。4.1 、变量渲染视图部分:package mainimport "github.com/gin-gonic/gin"type Student struct {...

2023-07-02 21:17:00 43

原创 三、请求与响应

三、请求与响应3.1、请求数据(1)获取基本请求数据r.GET("/test", func(c *gin.Context) { // 获取基本请求信息 fmt.Println(c.Request.Method) // 获取请求方法,输出为 get fmt.Println(c.Request.URL) // 获取请求路径,输出为 /test fmt.Printl...

2023-07-02 16:25:00 26

原创 二、Gin路由

二、Gin路由2.1、路由方法路由系统支持任意方式的请求,如下的的方法用来提供对应的接受请求:func (group *RouterGroup) DELETE(relativePath string, handlers ...HandlerFunc) IRoutesfunc (group *RouterGroup) GET(relativePath string, handlers .....

2023-06-12 22:20:00 24

原创 一、Gin开篇

一、Gin开篇1.1、web应用程序package mainimport ( "fmt" "net")func main() { listener, err := net.Listen("tcp", "127.0.0.1:8888") if err != nil { fmt.Println(err) return } defer listener.Close...

2023-06-12 21:52:00 33

原创 docker删除网络报错:Error response from daemon: error while removing network

在安装harbor发现docker的network已经存在了 然后直径ls去查看发现存在如下,然后去rm删除的时候发现删不掉[root@st-test-hemu-harbor-2 harbor]<20230529 11:37:11># docker network ls NETWORK ID NAME DRIVER SC...

2023-05-29 13:38:00 313

原创 七、拉取代码

七、拉取代码1. git clonegit clone顾名思义就是将其他仓库克隆到本地,包括被clone仓库的版本变化。举个例子,你当前目录比方说是在e:/course/中,此时若想下载远程仓库,本地无需**git init,直接git clone url(url是你远程仓库的地址,直接复制就可以了)。执行git clone等待clone结束,e:/course/目录下自动会有一个.git的...

2023-05-14 08:36:00 61

原创 六、分支管理

六、分支管理6.1、分支命令分⽀可以给使⽤者提供多个开发环境,也就是说可以将你的⼯作从主线中分离出来,以免影响开发主 线,等分⽀的代码开发完之后,再合并到主线代码上。git branch # 查看当前分⽀git branch dev # 创建⼀个名为dev的分⽀git checkout dev # 将⼯作切换到dev分⽀上git checkout -b dev # 创建并切换到dev...

2023-05-14 08:26:00 16

原创 五、远程仓库

五、远程仓库5.1、ssh远程连接5.1.1、ssh命令ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明...

2023-05-13 17:29:00 13

原创 四、Git核心

四、Git核心4.1、Git分区4.2、文件状态针对与文件所处的不同分区,文件所处的状态:(1)未追踪, 文件第一次出现在工作区, 版本库还没有存储该文件的状态(2)已追踪, 只要第一次git add了文件, 文件就是已追踪(3)未修改, 文件在工作区未被编辑(4)已修改, 文件在工作区被修改(5)未暂存, 文件已修改, 但是没有add到暂存区(6)已暂存, 已经将修改的文...

2023-05-13 17:20:00 17

原创 三、Git的下载与配置

3.1、Git的windows下安装官网地址:https://git-scm.com/download下载到本地磁盘一路【next】安装安装完成后,右击菜单栏,有如下菜单,表示安装完成进入git bash选项:3.2、配置git config -l第一次使用git一般都需要配置git的用户名和邮箱,表明提交者的身份。git config --global ...

2023-05-13 17:14:00 17

原创 一、版本控制

Git版本管理工具一、版本控制1.1、本地版本控制什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。如果你在学校写过...

2023-05-13 17:10:00 13

原创 pod拉取镜像异常

最开始是镜像拉取策略是Never原因是因为我这个是公网镜像仓库,犹豫机器的不稳定域名解析有问题 其实本地是由这个镜像的 所以只要把这里的镜像策略更改就可以了对应的拉取策略参考镜像拉取策略...

2023-04-10 11:26:00 39

原创 Linux 免密登录设置

Linux 免密登录设置一、生成公私钥1.1 ssh-keygen -t rsa #生成免密登录公私钥,根据提示按回车或y1.2 ls -lha #.ssh目录默认隐藏,可使用ls -lha 查看1.3 cd /root/.ssh/ #进入.ssh 公私钥存放目录1.4 ll ...

2023-01-10 23:02:00 278

原创 十一、包管理

十一、包管理11.1、packageGo语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种高级的代码复用方案。Go语言中为我们提供了很多内置包,如 fmt、os、io 等。任何源代码文件必须属于某个包,同时源码文件的第一行有效代码必须是package pacakgeName语句,通过该语句声明自己所在的包。Go语言的包借助了目录树的组织形式,一般包的名称就...

2022-12-21 23:35:00 16

原创 十、接口(interface)

十、接口(interface)10.1、楔子10.1.1 、多态的含义在java里,多态是同一个行为具有不同表现形式或形态的能力,即对象多种表现形式的体现,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定...

2022-12-21 23:35:00 19

原创 kubernetes集群节点多网卡,calico/flannel组件如何指定网卡

kubernetes集群节点多网卡,calico/flannel组件如何指定网卡1、calico如果有节点是多网卡,所以需要在deploy的env指定内网网卡spec: containers: - env: - name: IP value: "autodetect" - name: IP_AUTODETECTION_METHOD # Daemon...

2022-12-05 23:01:00 334

原创 卸载分区目录,target is busy解决方案

umount /home/data1/卸载分区目录,出现target is busyumount /home/data1/umount: /home/data1: target is busy. (In some cases useful info about processes that use the device is found by lsof(...

2022-12-02 14:28:00 110

原创 创建PV报错Device /dev/sdX excluded by a filter

报错如下:解决办法:在进行pvcreate创建PV时,可能会遇到Device /dev/sdX excluded by a filter报错,一般出现这个错误是在通过parted分区并删除相应的分区信息以后。遇到这种情况有两种解决方法:wipefs -a /dev/vdb# pvcreate /dev/vdbPhysical volume "/dev/vdb" successful...

2022-11-29 21:22:00 493

原创 九、结构体

九、结构体在实际开发中,我们可以将一组类型不同的、但是用来描述同一件事物的变量放到结构体中。例如,在校学生有姓名、年龄、身高、成绩等属性,学了结构体后,我们就不需要再定义多个变量了,将它们都放到结构体中即可。在Go语言中,结构体承担着面向对象语言中类的作用。Go语言中,结构体本身仅用来定义属性。还可以通过接收器函数来定义方法,使用内嵌结构体来定义继承。这样使用结构体相关操作Go语言就可以实现...

2022-11-27 22:37:00 14

原创 k8s PodPreset

k8s PodPreset1. PodPreset 的作用将一些公用的参数设置到pod中去,例如 时区统一设置为东八区等2. API Server 开启PodPreset编辑文件 /etc/kubernetes/manifests/kube-apiserver.yaml,添加配置 --runtime-config=settings.k8s.io/v1alpha1=true,添加Po...

2022-11-25 15:54:00 45

原创 K8S的pod展示镜像信息

K8S的pod展示镜像信息https://kubernetes.io/zh/docs/tasks/access-application-cluster/list-all-running-container-images/kubectl get pods -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{" :\t"}{ran...

2022-11-21 13:19:00 79

原创 八、文件操作

八、文件操作8.1、编码ASCII表众所周知,计算机起源于美国,英文只有26个字符,算上其他所有特殊符号也不会超过128个。字节是计算机的基本储存单位,一个字节(bytes)包括八个比特位(bit),能够表示出256个二进制数字,所以美国人在这里只是用到了一个字节的前七位即127个数字来对应了127个具体字符,而这张对应表就是ASCII码字符编码表,简称ASCII表。后来为了能够让计...

2022-11-20 20:50:00 18

原创 七、函数

七、函数简单说,函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,避免大量重复的代码。基本语法func 函数名 (形参列表) (返回值类型列表) { 执行语句... return + 返回值列表}函数的定义和函数的调用案例:package mainimport "fmt"func cal(num1 int, num2 int) int { ...

2022-11-20 14:39:00 33

原创 六、重要数据类型

六、重要数据类型6.1、指针类型(核心类型)6.1.1、指针的基本使用计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 ...

2022-11-14 22:08:00 28

原创 Linux系统出现cannot create temp file for here-document: Read-only file system解决办法

打开终端输入命令比如mkdir 、cd等等,会出现如下提示cannot create temp file for here-document: Read-only file system解决办法如下:mount -o remount,rw /原文:https://www.codenong.com/cs105684303/...

2022-11-14 13:02:00 176

空空如也

空空如也

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

TA关注的人

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