摘要:
1. 背景 某线上应用部署在ack集群内,用于根据用户定义的http请求项配置,周期性检查http接口的请求响应状态,接口地址为内网或公网,当接口地址为公网时,频繁出现请求超时的报警错误。经过排查发现,在公网请求发生超时的时刻,集群vpc NAT带宽达到上限200Mbps,也就是25MB/s 分析: 阅读全文
摘要:
1、Gradle介绍 Gradle是一种自动化构建语言,是一种DSL。目前是Android的默认构建工具,是一个编程框架 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于K 阅读全文
摘要:
1、背景 使用阿里云ack托管版运行k8s集群,有时需要对团队内成员授权集群非管理员的权限,以及某些服务需要调用k8s相关api做特定操作,例如在指定的某namespace下创建某控制器(例如deployment)的权限 由于在ack托管版环境下,集群的master节点由阿里云托管,对租户不可见,因 阅读全文
摘要:
本文是服务网格和Istio初识的续篇内容,主要是漫谈(记录)一些关于服务网格、Istio的一些理论及个人认知 为什么还要写这类看似枯燥的文章?我始终认为,学习和实践应用一门新技术之前,应该做好多方调研,全局认知,当前有什么痛点能解决而不是有哪些功能能拿来用等等,到最后不至于仅仅是用了起来而已 1、服 阅读全文
摘要:
1、云原生 云原生的定义: 2010年,WSO2技术总监PaulFremantle 首次提出Cloud Native,他一直想用一个词表达一个架构,这种架构能够描述应用程序和中间件能够在云环境中有良好的运行状态。云原生有以下特性 分布式、弹性、多租户,子服务,按需计量和计费,增量部署和测试 2013 阅读全文
摘要:
1、非对称加密介绍 非对称加密和对称加密不同,主要区别如下 使用公钥加密,使用私钥解密 公钥和私钥不同 公钥可以公布给所有人 私钥只有自己保存 相比于对称加密,运算速度非常慢 加密过程:明文+公钥——>密文 解密过程:密文+私钥——>明文 非对称加密算法常用于数据加密和身份认证, 常见的非对称加密算 阅读全文
摘要:
1、Terway网络介绍 Terway是阿里云开源的基于专有网络VPC的容器网络接口CNI(Container Network Interface)插件,支持基于Kubernetes标准的网络策略来定义容器间的访问策略。可以通过使用Terway网络插件实现Kubernetes集群内部的网络互通 Te 阅读全文
摘要:
1、对称加密介绍 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高 AES(Adv 阅读全文
摘要:
散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结 阅读全文
摘要:
1、问题背景 某天,业务同学反馈生产环境k8s集群中由核心服务创建的Job任务执行速度奇慢...... 通过分析服务日志发现,该服务运行前期主要是执行请求数据交换服务,获取到oss对象存储的文件url后进行下载,下载完成后再执行其他任务 2、分析和复盘 “服务好好的,怎么用着用着就慢了呢?” 旁边的 阅读全文
摘要:
名词说明:本文提到的k8s集群特指阿里云ack(Alibaba Cloud Container Service for Kubernetes)集群 1、概述 Kubernetes解决了应用的编排、生命周期、自我健康检查和恢复等问题,随着应用容器化(云原生化)的不断完善和落地,方方面面需要考虑的问题也 阅读全文
摘要:
1、背景概述 容器镜像是容器化落地转型的第一步,总结几点需要做镜像优化的原因 随着应用容器化部署的大规模迁移以及版本迭代的加快,优化基础设施之docker镜像主要有以下目的 缩短部署时的镜像下载时间 提升安全性,减少可供攻击的目标 减少故障恢复时间 节省存储开销 2、为什么镜像会这么大 这里简要分析 阅读全文
摘要:
本文是Golang反射-上篇的续篇内容,主要介绍反射实际的一些使用 1、判断类型interface.Type 利用类型断言来判断数据类型的用法如下 package main import "fmt" func main() { var s interface{} = "abc" switch s.( 阅读全文
摘要:
1、反射的定义 It’s a great source of confusion ~ (引用自官方博客) 反射是指在运行时动态的访问和修改任意类型对象的结构和成员,在go语言中提供reflect包提供反射的功能,每一个变量都有两个属性:类型Type和值Value 反射能够自描述自控制 例如pytho 阅读全文
摘要:
1、概述 前面分别写到了 JenkinsPipeline语法概要 和 Dockerfile语法概要,最近又重新拾起了Helm Chart,刚好回忆一下其语法 ~ Helm是k8s中的一个包管理工具,可以用来部署k8s资源。在Helm中最核心的就是模板,即模板化的k8s manifests文件 它本质 阅读全文