最新内容
golang里如何高效的拼接字符串
Golang里字符串修改操作都会创建一个新的字符串进行拷贝赋值,拼接多次应使用strings.Builder,减少内存拷贝次数,参考代码:var str strings.Builderfor i := 0; i <&nb
日期 2020-05-23 阅 1835 微笔记strings.Buildergolang字符串拼接高效拼接字符串吾八哥学k8s(八):kubernetes里Secret的用法
上一篇里学习了ConfigMap的用法,ConfigMap用于存储配置文件,那么今天这里的Secret可以理解为是存储一些密钥类型的配置文件,它的存储比较安全灵活。下面来学习一些基本用法:创建Secret创建secret使用kubectlcreatesecretgeneric...命令,查看
日期 2020-05-17 阅 3907 吾八哥学k8sSecret的用法Secret的创建Secret的删除Secret的使用apps/v1版本下使用client-go实现kubernetes回滚的方法
在extensions/v1beta1版本下,client-go的api接口下的deployment支持rollback方法来回滚,使用方法如下: ...
日期 2020-05-05 阅 5129 client-goclient-go用法client-go实现回滚使用client-go API来实现yaml文件的k8s部署
实现思路yaml文件先转为json格式,然后json反序列化为deployment对象实现代码package mainimport ("context""encoding/json""fmt"
日期 2020-05-05 阅 7274 client-goclient-go用法client-go实现yaml文件部署golang里strcut存为toml文件的方法
背景之前有介绍过在golang里如何读取toml文件文件,最近有个同学问我如何将struct存为toml文件,不过之前确实没这么操作过,所以就看了下toml的库的代码才找到方法。我采用的toml解析库为:github.com/BurntSushi/toml,在encode.go文件里的关键说明如下:
日期 2020-05-05 阅 3809golang里sync.Map包的使用方法
sync.Map简介在Go语言里内置的常规map是只支持并发读,但不支持并发写操作的,常见的错误信息:fatalerror:concurrentmapwrites.但在golang里已经提供了封装好的线程安全map的包sync.Map,可以看看sync.Map的定义:// Map
日期 2020-05-05 阅 4731 sync.Map包的用法sync.Map长度的获取吾八哥学k8s(七):kubernetes里ConfigMap的用法
什么是ConfigMap?kubernetes通过ConfigMap来实现对容器中应用的配置管理。ConfigMap是一个将配置文件、参数变量等配置信息绑定到Pod容器的组件,ConfigMap允许将配置与Pod和组件分开,然后通过挂载的方式进行使用。ConfigMap的创建支持从文件、目录、字符串
日期 2020-04-26 阅 4290 吾八哥学k8sConfigMap的用法ConfigMap的创建ConfigMap的删除吾八哥学k8s(六):kubernetes扩容、缩容
扩容是用在高峰期访问量过大的情况下,当前deployment的pod数量已经无法支撑业务的时候,需要扩展更多的pod数量。缩容是指在业务空闲期只需要少数的pod即可满足业务需求,太多的pod是资源浪费,所以这个时候就需要缩容。手动扩缩容手动调整pod数量使用kubectlscale命令可以调整po
日期 2020-04-25 阅 4079 吾八哥学k8sk8s扩容k8s缩容HPA配置方法k8s水平自动伸缩吾八哥学k8s(五):kubernetes滚动更新、回滚
什么是滚动更新?滚动更新是指允许通过使用新的实例逐步更新Pod实例,零停机进行Deployment更新。新的Pod将在具有可用资源的节点上进行调度,最大好处是零停机,整个更新过程始终有副本在运行,从而保证业务不宕机。滚动更新允许以下操作:将应用程序从一个环境提升到另一个环境(通过容器镜像
日期 2020-04-19 阅 3694 吾八哥学k8skubernetes部署回滚kubernetes滚动发布kubernetes部署暂停kubernetes部署历史吾八哥学k8s(四):kubernetes常用基本命令
集群相关查看k8s版本kubectl version查看api版本kubectl api-versions查看集群信息kubectl cluster-info查看集群健康情况kubectl get cs查看事件kubectl get&nbs
日期 2020-04-19 阅 2755 吾八哥学k8skubernetes常用基本命令kubectl命令kubernetes添加删除labelkubernetes重启podgit实现代码规范提交的拦截机制
背景在代码管理的过程中,往往需要对代码提交信息进行规范管理,例如email要为公司邮箱,名字要为真实姓名,commitmessage要符合规范,这样方便后期代码统计,代码追溯源头。这里以拦截提交人邮箱和message为例,邮箱必须为公司邮箱,message必须是feat、bugfix、hotfix
日期 2020-04-18 阅 3805gitlab里查某SSH key挂在什么账户下的方法
问题场景把某个sshkey加到某账户下,但加不进去,错误提示:Fingerprinthasalreadybeentaken,而且这个key也无权限拉新仓库的代码想加下,不知道怎么加。可能是加到某离职同学的名下了,但不知道是谁。解决方法出现此问题的原因是因为这个sshkey已经被加到了其他
日期 2020-04-18 阅 5722golang里实现获取当前git仓库、分支的方法
需要写一个获取当前git仓库的地址和分支的方法,这里想到的最快的方法就是通过命令行的形式,关键代码如下:package gitimport ("fmt""os/exec""strings")
日期 2020-04-12 阅 5733 golang获取git仓库分支golang调用命令行吾八哥学k8s(三):kubernetes里创建资源的方法
上一篇里已经成功的将一个golang的demo服务部署到k8s环境里了,部署的时候我们用到了yaml配置文件,今天这里简单的介绍下如何使用创建kubernetes里的资源。在kubernetes里,一切对象皆为资源,可以通过命令或配置文件来创建。命令行创建资源通过命令行可以创建namespace、d
日期 2020-04-11 阅 2871 吾八哥学k8skubernetes创建资源kubernetes里yaml的字段说明吾八哥学k8s(二):golang服务部署到kubernetes
本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容。纯新手入门方式,生产服务需要完整的CI/CD流程来支持。golang服务代码这里简单写一个k8s-demo的服务,提供两个接口ping和version接口,main.go文件代码如
日期 2020-04-10 阅 2954 吾八哥学k8skubernetes部署golang服务上k8sgo服务上容器