国南之境


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

源码追查 Drone 开源系统中的 socket 泄漏问题

发表于 2020-08-12 | 分类于 Drone , k8s | 阅读次数:
背景微服务的最基本基础,就是 CICD,CI 的交付产物是制品。制品有很多属性,比如环境、版本等。从这个抽象上来看,如果微服务是基于 K8s + docker 的话,那么,docker image 是制品的一种具象化的表现。同样,如果微服务并不基于 docker 和 K8s,那么,制品也可以是其他具 ...
阅读全文 »

源码分析:K8s CNI macvlan 网络插件,是否做了 ARP 宣告?

发表于 2020-08-11 | 分类于 网络 , k8s | 阅读次数:
先说结论做了 ARP 宣告。因此,用了 macvlan L2 层网络插件的 K8s 网络,不需要担心 IPAM 分配策略不佳的问题:同一个 IP,短时间内,回收又分配出去。 为什么要分析?首先,macvlan 是 K8s CNI 的一个网络插件,它主要是用来配置 underlay 大 L2 层网络。 ...
阅读全文 »

一次关于 TCP 建连,偶尔会失败的问题分析

发表于 2020-07-14 | 分类于 网络 | 阅读次数:
背景有 2 个 K8s 集群, 网络模式不同,集群1 是虚拟网络 K8s(flannel vxlan)、集群2 是 L2 层网络 K8s(macvlan),之前,对 2 个集群的架构,做了调整,打通了 2 个集群的容器网络,做了互联互通(容器间可以跨集群网络调用)。 然后,很多服务,需要从集群1,迁 ...
阅读全文 »

从一次 CoreDNS 插件的优化过程,看随机数种子的作用

发表于 2020-07-01 | 分类于 CoreDNS | 阅读次数:
背景公司内的 DNS 服务,是基于 CoreDNS 自研的,最开始只对这个项目做过一次代码 Review(发现过其处理泛域名解析存在逻辑 Bug )之后,就再也没有参与。而随着公司业务变化,疫情影响,负责这个 DNS 的事情落在我这里。 在此期间,运维那边发现,某个域名配置多个 A 记录之后,只有某 ...
阅读全文 »

如何打通 K8s 虚拟网络(flannel vxlan 网络)和 K8s 2层网络(macvlan网络)

发表于 2020-03-10 | 分类于 k8s , 网络 | 阅读次数:
背景谈论问题,先谈背景。 K8s 在虚拟网络下存在很多问题。比如说: Pod IP 无法被外部访问,只能在 K8s 集群内访问。直接从实例上无法做到与物理机实例互联互通。 Java 等依赖外部注册中心的服务,如果不放到同一个 K8s 集群里,服务之间无法互访。 复杂场景下,比如:多机房、集群灾备等 ...
阅读全文 »

CoreDNS全解—CoreDNS插件开发入门

发表于 2019-05-13 | 分类于 coredns , golang | 阅读次数:
前序在之前的文章里提过,伴随云原生应用概念以及CNCF社区推广,CoreDNS 慢慢作为 K8S 集群的官方DNS服务,正在替代 KubeDNS 作为 K8S 集群的服务发现组件,但是,CoreDNS 因为 Golang 编写的高性能、“插件式”支持等特性,使得 CoreDNS 又不仅仅可以应用在 ...
阅读全文 »

一个奇怪的golang对切片的竞争检测问题

发表于 2019-04-19 | 分类于 golang | 阅读次数:
问题示例1、首先,在开始之前,先说一点相关的东西。 在 Golang 中,有很多数据结构的操作,都不是线程安全的,比如大家熟知的 map ,比如 container/list 包。线程安全,指的是基于这类数据结构实例化的变量,可以并发操作,也就是多个 goroutine 同时进行操作。 另外,也许你 ...
阅读全文 »

聊一聊golang的结构体标签

发表于 2019-04-14 | 分类于 golang | 阅读次数:
前言Golang的结构体标签可能每一个Gopher都在用,尤其是在json处理的地方用。比如: 123456type NetConf struct { Master string `json:"master"` Mode string `json:"mode"` MT ...
阅读全文 »

一个奇怪的golang等值判断问题

发表于 2019-04-03 | 分类于 golang | 阅读次数:
问题场景分析一下,下面代码的输出是什么(判断a==c)的部分 12345678910111213141516package mainimport ( "fmt" "runtime")type obj struct{}func main() { a := ...
阅读全文 »

Golang实现数据结构“栈”的三种实现,性能对比及应用示例

发表于 2019-04-02 | 分类于 golang , 数据结构与算法 | 阅读次数:
前言本文主要讲一讲栈这种非常基础的数据结构,以及其如何用Golang来实现的3种方式,简单用golang bench做一个性能比对,以字符串括号匹配的一个例子来看其一个简单的应用场景。 栈的特性栈是一种FILO类型的数据结构,FILO 即 Fisrt In Last Out,也就是先进后出,也可以说 ...
阅读全文 »
123

国南之境

23 日志
28 分类
28 标签
© 2020 国南之境
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4