Go语言学习目录
学习go环境配置
如何编写golang代码
GO语言变量及常量
Kubernetes学习目录
初识kubernetes
kubernetes之“Hello World”
kubeadm部署k8s集群
安装harbor
kubernetes安装dashboard
Liveness, Readiness与Startup Probes
kubernetes POD控制器
RS与Deployment
Service资源
K8s部署Ingress Traefik
traefik配置dashboard https访问
Kubernetes部署nginx-ingress使用
Kubernetes的ConfigMap使用
Kubernetes的Secret使用
Kubernetes的Volume使用
Kubernetes的PV、PVC使用
Kubernetes集群的污点与容忍
Kubernetes安全之kubeconfig访问控制
Kubernetes的helm部署
Helm部署dashboard
k8s部署prometheus、grafana监控
二进制部署高可用集群
日志收集
k8s监控系统
...
ubuntu20.04 lts 部署k8s集群
关闭防火墙
$ ufw disable && sudo ufw stop
关闭swap
$ swapoff -a$ sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
关闭selinux
$ setenforce 0$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
调整内核参数
$ cat > /etc/sysctl.d/kubernetes.conf <<EOFvm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它vm.overcommit_memory=1 # 表示内核允许分配所有的物理内存,而不管当前的内存状态如何vm.panic_on_oom=0 # 表示当内存耗尽时,内核会触发OOM killer杀掉最耗内存的进程vm.max_map_count=262144 net.bridge.bridge- ...
multipss尝鲜
查看可下载的Ubuntu镜像
$ multipass findImage Aliases Version Descriptioncore core16 20200818 Ubuntu Core 16core18 20211124 Ubuntu Core 18snapcraft:core18 18.04 20201111 Snapcraft builder for Core 18snapcraft:core20 20.04 20210921 Snapcraft builder for Core 20snapcraft:core22 22.04 20220426 ...
postgresql生产事故
postgresql生产事故事故概要环境:
底层环境为:K8s + Docker
部署方式:Operator + StatefulSet
现象:
通过远程工具方式连接pooler:ERROR: client_login_timeout(server down) ERROR: SSL required
通过master终端连接 psql -hxxxx -Upostgres -dpostgres:发现执行夯住
查看pooler日志: postgres/postgres@xxxx:49696 pooler error: pgbouncer cannot connect to server
排查过程
测试通过pooler pod终端连接
通过客户端使用pooler地址链接发现超时,然后通过终端方式连接master,发现夯住,排除了pod 网络及端口。
测试通过master pod终端连接
通过终端方式直联master,发现夯住,然后通过top命令发现cpu负载500以上,执行patronictl list查看集群状态也是夯住
通过slave pod终端查看集群状态Patroni ...
GO语言变量及常量
GO语言变量及常量golang变量 变量是计算机语言中能储存计算结果或能表示值的抽象概念。不同的变量保存的数据类型可能会不一样。
声明变量Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用。
声明变量的语法
var identifier type
var:声明变量关键字
identifier:变量名称
type:变量类型
package mainfunc main() { var name string var age int var ok bool}
批量声明
使用一个var关键字,把一些变量写在一个括号()里
package mainfunc main() { var ( name string age int ok bool )}
变量的初始化Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符 ...
如何编写golang代码
如何编写golang代码代码组织go应用使用包和模块来组织代码,包对应到文件系统就是文件夹,模块就是**.go的go源文件。一个包会有多个模块,或者多个子包。
go 项目管理工具早期的go项目使用gopath来管理项目,不方便而且容易出错,从golang 1.11开始使用gomod管理项目,当然还有第三方模块例如govendor,这里介绍gomod的使用
创建程序步骤
创建项目
初始化项目
创建包
创建模块
相互调用
golang标识符、关键字、命名规则标识符标识符:通俗来说,就是给变量、常量、函数、方法、结构体、数组、切片、接口起名字
标识符的组成
标识符由数字、字母和下划线组成。123 abc _
只能以字母和下划线开头。abc123 _abc
标识符区分大小写
go语言关键字,不能用于定义名字
append
default
func
interface
select
case
defer
go
map
struct
chan
else
goto
package
switch
const
fallthrough
if
range
type ...
go环境配置
golang官网地址:https://golang.google.cn
golang中文文档:https://studygolang.com/pkgdoc
golang学习教程:https://golang-tech-stack.com/tutorial
go 环境配置Windows 配置go env
goroot为go安装的根目录,gopath就是go项目所在的路径,高版本go项目已经不在依赖gopath来管理项目,使用go mod来管理项目。
配置GO111MODULE环境变量
GO111MODULE 是 Go 1.11 引入的新版模块管理方式。之前的版本中,安装的三方库比如 go-cmp ,要求模块存在于 GOPATH 下,否则编译时会找不到。
# 开启GO111MODULE$env:GO111MODULE = "on"
配置 proxy 环境变量 PowerShell (Windows)
# 配置 GOPROXY 环境变量$env:GOPROXY = "https://proxy.golang.com.cn,direct"# 还可 ...
Java项目配置Nexus
Java项目引入nexus配置POM文件中引入nexus
<!-- 配置nexus仓库 --><repositories> <repository> <id>nexus-releases</id> <name>Team Nexus Repository</name> <url>http://172.22.96.91:18081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository>& ...
容器运行hexo
hexo运行脚本docker rm -f hexo docker run -d --name=hexo --restart always -p 80:4000 \-v /data/hexo/source:/opt/blog/source \-v /root/.ssh/id_rsa:/root/.ssh/id_rsa \-v /data/hexo/_config.yml:/opt/blog/_config.yml \-v /data/hexo/_config.butterfly.yml:/opt/blog/_config.butterfly.yml \-v /data/hexo/themes/butterfly/source/img:/opt/blog/themes/butterfly/source/img \heweiqun/hexo:202205121314-node-12.22.7
butterfly主题使用:Butterfly 安裝文檔
/opt/blog/source 本地需要_posts目录 ...