吾八哥

  • apps/v1版本下使用client-go实现kubernetes回滚的方法

    apps/v1版本下使用client-go实现kubernetes回滚的方法

    在extensions/v1beta1版本下,client-go的api接口下的deployment支持rollback方法来回滚,使用方法如下:        ...          rollback := &v1beta1.DeploymentRollback{ Name: name, Rollb...

    Kubernetes 2020-05-05 216 0
  • 使用client-go API来实现yaml文件的k8s部署

    使用client-go API来实现yaml文件的k8s部署

    实现思路yaml文件先转为json格式,然后json反序列化为deployment对象实现代码package main import ( "context" "encoding/json" "fmt" "io/ioutil" "log" v1 "k8s.io/api/apps/v1" metav1 "k8s.i...

  • kubernetes扩容、缩容

    kubernetes扩容、缩容

    扩容是用在高峰期访问量过大的情况下,当前deployment的pod数量已经无法支撑业务的时候,需要扩展更多的pod数量。缩容是指在业务空闲期只需要少数的pod即可满足业务需求,太多的pod是资源浪费,所以这个时候就需要缩容。手动扩缩容手动调整pod数量使用kubectl scale命令可以调整pod的副本数量,可以指定deployment的pod数量,使用方法如下:5bug-MacBook:~$ kubectl scale deployment k8s-demo ...

  • kubernetes滚动更新、回滚

    kubernetes滚动更新、回滚

    什么是滚动更新?滚动更新是指允许通过使用新的实例逐步更新 Pod 实例,零停机进行 Deployment 更新。新的 Pod 将在具有可用资源的节点上进行调度,最大好处是零停机,整个更新过程始终有副本在运行,从而保证业务不宕机。滚动更新允许以下操作:将应用程序从一个环境提升到另一个环境(通过容器镜像更新)回滚到以前的版本持续集成和持续交付应用程序,无需停机Replication Controller 和 ReplicaSetReplication Controller用来确保容器应用的副本数始终保持在用户定义的副本...

  • golang里sync.Map包的使用方法

    golang里sync.Map包的使用方法

    sync.Map简介在Go语言里内置的常规map是只支持并发读,但不支持并发写操作的,常见的错误信息:fatal error: concurrent map writes. 但在golang里已经提供了封装好的线程安全map的包sync.Map,可以看看sync.Map的定义:// Map is like a Go map[interface{}]interface{} but is safe for co...

  • golang里strcut存为toml文件的方法

    golang里strcut存为toml文件的方法

    背景之前有介绍过在golang里如何读取toml文件文件,最近有个同学问我如何将struct存为toml文件,不过之前确实没这么操作过,所以就看了下toml的库的代码才找到方法。我采用的toml解析库为:github.com/BurntSushi/toml,在encode.go文件里的关键说明如下:// NewEncoder returns a TOML encoder that encodes Go values ...

  • 吾八哥学Golang(八):Golang里的数组

    吾八哥学Golang(八):Golang里的数组

    数组是编程中非常常用的一种数据结构,Go语言里自然也是支持数组的,本文来初步了解下Go语言里的数组用法!数组声明Go语言数组声明需要指定元素类型及元素个数,语法格式如下:var 变量名 [长度]...[长度] 变量类型长度要大于0的,下面列出一些数组声明的例子:package main import "fmt" func main()  {    //声明长度为10的str...

    新手入门 2020-04-12 195 0 吾八哥学Golang
  • 吾八哥学Golang(七):Golang里的函数

    吾八哥学Golang(七):Golang里的函数

           函数是组成代码结构的重要的一部分,在Go语言里函数由关键字func、函数名、参数列表、返回值、函数体、返回语句return组成。当然Golang里也是支持匿名函数的,匿名函数是不需要定义函数名的。同时Golang和Python一样也支持多返回值以及不定参数。需要注意的是函数名小写字母开头的只能在本包内可见,大写字母开头的才可以被其他的包使用。函数的基本用法来写个简单的例子熟悉下Golang里的函数的用法吧!如下:package main impo...

    新手入门 2020-04-12 200 0 吾八哥学Golang
  • 吾八哥学Golang(六):Golang里的流程控制-跳转语句

    吾八哥学Golang(六):Golang里的流程控制-跳转语句

    跳转语句即goto语句,goto语句可以无条件地转移到过程中指定的标签代码段。在大多数情况下都是不推荐使用goto语句的,因为goto语句会造成某种程度的程序结构的混乱,所以我们在其他开发语言里都很少看到使用goto语句,但既然存在goto语句,肯定会有一些应用场景使用goto语句是最合适的!这些我觉得在编程的过程中根据实际情况而来就行。来看个简单的使用goto的例子吧!package main import (    "fmt" )...

    新手入门 2020-04-12 210 0 吾八哥学Golang
  • 吾八哥学Golang(五):Golang里的流程控制-循环语句

    吾八哥学Golang(五):Golang里的流程控制-循环语句

    在Golang里循环语句只支持for关键字,而不支持其他开发语言支持的while,do...while,repeat...until这些,Golang里的循环语句的写法和C++里非常相似,但比C++里应该更简洁,for后的语句不需要括号,如下实例:package main import "fmt" func main()  {    for i:=1; i<=10; ...

    新手入门 2020-04-12 224 0 吾八哥学Golang