摘要: "原文链接" 什么是逃逸分析 逃逸分析(Escape Analysis)是Go在编译程序时执行的过程, 由编译器通过分析, 决定变量应当分配在栈上还是堆上. 在编译中进行逃逸分析 目前有代码如下: 通过在编译时增加gcflags参数, 使用类似如下命令编译: 然后获得输出如下: 这些信息,表明 Ge 阅读全文
posted @ 2020-05-07 17:20 Ethan.Tang 阅读(525) 评论(0) 推荐(0) 编辑
摘要: "原文链接" map 的基本构成 map的实现文件为 . 它的基本结构是一个HashMap,实现方式为哈希桶, 根据key将数据散列到不同的桶中,每个桶中有固定的8个键值对. 桶尾部可以挂载额外的桶(overflow buckets). 由结构可知, Go map的访问复杂度为O(1), 假设哈希函 阅读全文
posted @ 2020-05-07 17:19 Ethan.Tang 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 在使用Helm过程中, 经常会遇到编排需要兼容不同K8S版本的问题. 考虑如下场景: 1. 以前编写的Deployment资源, 其apiVersion为 apps/v1beta1, 但后来新的版本中已经改为 apps/v1,希望能兼容 2. 在K8S 1.11以前, 默认CRD既不支持subRes 阅读全文
posted @ 2020-04-25 17:22 Ethan.Tang 阅读(1393) 评论(0) 推荐(0) 编辑
摘要: 用变量组合成新的模板 假设我们的一个组件在Chart中组合出了一个配置变量, 然后正巧有好几个文件要用到它: Golang Template已经自带一些如局部变量来做类似的事情, 但它的作用域无疑是有限的,也不利于统一管理. 这就有了 的用武之地. 这里 其实是Go模板自带的语法,可以轻易组合出新的 阅读全文
posted @ 2020-04-25 16:40 Ethan.Tang 阅读(1764) 评论(0) 推荐(0) 编辑
摘要: 首先, 创建一个Chart: helm create mychart 接下来, 讨论的假设前提是你已经熟悉Go Template的基本用法. Flatten Use Flatten Nested Use Nested name: "{{ .Values.config.svc.name }}" url 阅读全文
posted @ 2020-04-25 16:39 Ethan.Tang 阅读(950) 评论(0) 推荐(0) 编辑
摘要: 安装 可以从 https://github.com/helm/helm/releases/tag/v3.0.3 获取不同操作系统的版本 与Helm2不同, helm不再需要在集群中维持一个tiller. Helm 3 默认使用与kubectl相同的配置(KUBECONFIG), 来对Kubernet 阅读全文
posted @ 2020-04-25 16:38 Ethan.Tang 阅读(288) 评论(0) 推荐(0) 编辑
摘要: JS中建立Websocket连接 参数说明 第一个参数是服务端websocket地址,如果是https+websocket,那么前缀写成wss 第二个参数并不是必须的,它约定了双方通讯使用的自定义子协议,会被放到这个Header中: Sec WebSocket Protocol 子协议在某些场合是很 阅读全文
posted @ 2019-06-18 18:13 Ethan.Tang 阅读(2039) 评论(0) 推荐(0) 编辑
摘要: Linux稳定性好,Linux软件开放……不过等到决定把Linux当作日常工作用系统时,就一言难尽了…… 我日常工作的需求有: 笔记本扩展屏幕 Golang开发 docker/kubernetes 输入法 Git及文件对比 办公通信: Office365邮件,微信,企业微信 娱乐需求: 网易云音乐, 阅读全文
posted @ 2019-06-17 15:07 Ethan.Tang 阅读(867) 评论(0) 推荐(0) 编辑
摘要: Install Download protobuf: https://github.com/protocolbuffers/protobuf/releases Download Go support for protobuf: Download faster and also more custom 阅读全文
posted @ 2019-05-31 16:13 Ethan.Tang 阅读(796) 评论(0) 推荐(0) 编辑
摘要: microk8s 从1.14 开始, 使用containerd 代替原来自带的microk8s.docker, 据说是出于性能和与主机docker共存的考虑. 使用本地Registry加速镜像 然后在k8s yaml中使用 localhost:32000/newtag 即可 无法使用ClusterF 阅读全文
posted @ 2019-05-08 15:41 Ethan.Tang 阅读(1132) 评论(0) 推荐(0) 编辑