04 2022 档案

摘要:在高并发场景中,通常需要像mysql中那样的自增主键一样的不会重复且自增的id生成 twitter的snowflake就是一种典型的解法,id数值长64位,是一个int64类型,被分为四个部分: 最高位不使用 41位表示收到请求的时间戳,单位为毫秒 5位表示数据中心的id 5位表示机器实例的id 1 阅读全文
posted @ 2022-04-10 20:20 aganippe 编辑
摘要:1. 数据争用 数据争用在golang中指两个协程同时访问相同的内存空间,并且至少有一个是写操作,就是线程不安全的问题 在golang中有一种经典的数据争用错误 func save(g *data){ saveToRedis(g) } func main(){ var a map [int]data 阅读全文
posted @ 2022-04-10 14:47 aganippe 编辑
摘要:1. StatefulSet为什么而生 在之前的Deployment中,已经可以看到这个控制器有多强大了,对于无状态应用可以做到滚动更新、回滚、扩容等一系列操作 但是对于有状态应用呢? 首先需要明确一个概念,什么是有状态应用? 有状态应用:实例之间有不对等关系、对实例外部数据有依赖关系的应用。最典型 阅读全文
posted @ 2022-04-09 14:25 aganippe 编辑
摘要:1. Secret 加密数据并存放在etcd中,让pod内容器以挂载volume方式访问 应用场景:凭据、用户名密码、https证书、docker仓库认证 pod使用secret的两种方式: 变量注入 挂载 1.1 secret使用 首先创建一个secret来保存一个常规的用户名和密码 如果我们要存 阅读全文
posted @ 2022-04-09 13:44 aganippe 编辑
摘要:视频类: 尚硅谷docker入门教程,快速上手 【尚硅谷】Docker迅速入门丨零基础学docker 周阳主讲_哔哩哔哩_bilibili 尚硅谷k8s入门教程,快速上手,偏向运维 尚硅谷Kubernetes教程(K8s入门到精通)_哔哩哔哩_bilibili 【尚硅谷】Kubernetes(k8s 阅读全文
posted @ 2022-04-08 13:37 aganippe 编辑
摘要:1. service 防止pod失联(服务发现) 定义一组pod的访问规则(负载均衡) 服务发现 假设现在是一个deployment控制器,一般为了保证高可用都会至少部署三个副本,而且三个pod都有独立的ip地址 当一个pod挂掉之后,deployment会立刻拉取一个新的pod,但是新pod的ip 阅读全文
posted @ 2022-04-07 20:57 aganippe 编辑
摘要:1. Contriller简介 1.1 什么是控制器 controllers:在集群上管理和运行容器对象 通过label-selectors关联 Pod通过控制器实现应用的运维,如伸缩和回滚 k8s中常见的控制器主要有: deployment job cronjob daemon statefuls 阅读全文
posted @ 2022-04-07 13:39 aganippe 编辑
摘要:golang中的defer可以给我们编程带来很大的遍历,一些操作可以使用defer来防止不及时的关闭等 比如互斥锁、文件句柄、数据库连接等 比如一个文件操作: func main() { file, err := os.Open( "test.txt" ) if err != nil { log.P 阅读全文
posted @ 2022-04-06 23:27 aganippe 编辑
摘要:1. 什么是Pod 1.1 Pod的基本概念 Pod就是一组共享了某些资源的容器 Pod的设计是为了亲密性应用可以共享存储和网络而设计 什么是亲密性应用场景: 两个应用之间发生文件交互 两个应用需要通过127.0.0.1或者socket通信 两个应用需要发生频繁调用 1.2 pod的实现机制和设计模 阅读全文
posted @ 2022-04-06 20:26 aganippe 编辑
摘要:1. 常用指令 1.1 创建一个java测试项目 kubectl create deployment java-web --image=lizhenliang/java-demo apply和create的区别: apply是资源的创建和更新,create只能用于资源创建,再更新yaml之后是不能用 阅读全文
posted @ 2022-04-06 16:44 aganippe 编辑
摘要:1. 配置要求 至少三台虚拟机,一个master两个node 硬件配置:2GBRAM,2个CPU,30GB磁盘 操作系统:centos 7.x 禁止swap分区 可以访问外网,网络互通 角色 IP k8s-master 192.168.241.133 k8s-node1 192.168.241.13 阅读全文
posted @ 2022-04-06 15:10 aganippe 编辑
摘要:1. k8s架构组件 kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统 1.1 k8s的基本架构 和一些分布式存储和分布式数据库集群类似,在k8s集群中,也存在着master节点和node节点 其中master节点主要负责pod调度、服务注册、服务发现等一系列管理相关的工作 阅读全文
posted @ 2022-04-06 09:51 aganippe 编辑
摘要:1. 自定义response 对于具体的项目而言,我们需要基于JSON()自定义一个方便好用的response 比如下面这种形式: type Response struct { StatusCode int `json:"status_code" ` // 业务状态码 Message string 阅读全文
posted @ 2022-04-05 15:22 aganippe 编辑
摘要:1. 什么是Harbor Harbor是由VMWare公司开源的容器镜像仓库 事实上,Harbor就是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用 我们都知道Docker Registry是命令行操作的,对于运维非常不友好,所以Harbor所做的扩展基本就包括了 阅读全文
posted @ 2022-04-05 13:40 aganippe 编辑
摘要:在golang中,select一般是和chan一起工作的,用于同时监听多个chan的信息,其实用方法和switch差不多: select { case <-ch1: // ... case x := <-ch2: // ... case ch3 <- y: // ... default : // . 阅读全文
posted @ 2022-04-04 21:36 aganippe 编辑
摘要:首先需要导入依赖 go get gopkg.in/amz.v1/aws go get gopkg.in/amz.v1/s3 1. 初始化ceph连接 在初始化连接之前,我们需要创建一个用户得到accessKey和secretKey,新增用户的指令如下: docker exec ceph-rgw ra 阅读全文
posted @ 2022-04-04 14:38 aganippe 编辑
摘要:1. 状态机 从中我们可以得到几个我们需要实现的过程 初始化所有节点为follower 需要一个选举超时定时器,当定时器超时时,一个follower状态转为candidate candidate向其他节点请求投票,得到半数以上票数成为leader candidate发现新的leader或者自己的te 阅读全文
posted @ 2022-04-03 17:33 aganippe 编辑
摘要:1. 创建ceph专用网络 docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network 之后我们使用docker网络相关指令可以看到创建的 ceph-network 相关信息 docker network ins 阅读全文
posted @ 2022-04-03 14:57 aganippe 编辑
摘要:1. Token-based Authentication 在这种验证机制中,用户第一次登录需要POST自己的用户名和密码,在服务器端检验用户名和密码正确之后,就可以签署一个令牌,并将其返回给客户端 在此之后,客户端就可以用这个access_token来访问服务器上的资源,服务器只会验证该令牌是否有 阅读全文
posted @ 2022-04-01 13:26 aganippe 编辑

点击右上角即可分享
微信分享提示