噢乖蔡与朋友小笼包的技术小站

2020年终总结

作者: 小笼包
2021-01-17 多云

疫情的阴霾

2020年过去了,一个让我一生都难忘的年份,在这一年里有太多的改变,太多的不惑,太多的焦虑。一场突如其来的新冠病毒席卷全球,除夕之后,全国人民都陷入了
病毒的阴霾下,打破了春节的节奏,时间的节奏,城市生活的节奏。

阅读全文 »

Kubernetes删除状态为Terminating的命名空间

作者: 小笼包
2020-06-17 有雨

前言

今天公司开发环境Kubernetes集群使用起来很卡,于是我们对Kubernetes进行清理,主要删除无用的命名空间和重复多余的部署项目。当我通过程序删除无用的Kubernetes命名空间之后,发现命名空间的状态一直处于Terminating的状态,一直没有删除掉,虽然找了运维协助帮忙,但是这个问题不常遇到,在尝试了master节点逐个重启,和降低master机器负载等方式,该问题依旧存在,运维也没办法解决了,网上资料排查也没一个有效解决这类问题的标准方式,最后我只能自己尝试寻找解决方案,最终根据几个网站资料,找到了可以解决这问题的方法。

阅读全文 »

什么是gRPC

作者: 小笼包
2020-06-17 有雨

gRPC是Google开发的高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于Protobuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。

在gRPC中客户端可以像它是本地对象一样直接调用其他计算机上的服务器应用程序,与许多RPC系统一样,gRPC围绕定义服务的思想,指定可通过其参数和返回类型远程调用的方法。在服务器端,服务器实现此接口并运行gRPC服务器以处理客户端调用。在客户端,客户端具有一个存根(在某些语言中仅称为客户端),提供与服务器相同的方法。

gRPC客户端和服务器可以在各种环境中运行并相互通信,并且可以使用gRPC支持的任何语言编写。因此,例如,您可以使用Go,Python或Ruby的客户端轻松地用Java创建gRPC服务。此外,最新的Google API的接口将具有gRPC版本,可让您轻松地在应用程序中内置Google功能。

阅读全文 »

Kubernetes节点亲和性和反亲和性介绍

作者: 小笼包
2020-06-05 大雨

nodeAffinity

官方文档

将 Pod 分配给节点

亲和与反亲和

亲和/反亲和功能极大地扩展了你可以表达约束的类型。关键的增强点是:

  • 语言更具表现力(不仅仅是“完全匹配的 AND”)
  • 你可以发现规则是“软”/“偏好”,而不是硬性要求,因此,如果调度器无法满足该要求,仍然调度该 pod
  • 你可以使用节点上(或其他拓扑域中)的 pod 的标签来约束,而不是使用节点本身的标签,来允许哪些 pod 可以或者不可以被放置在一起。

亲和功能包含两种类型的亲和,即“节点亲和”和“pod 间亲和/反亲和”。节点亲和就像现有的 nodeSelector(但具有上面列出的前两个好处),然而 pod 间亲和/反亲和约束 pod 标签而不是节点标签(在上面列出的第三项中描述,除了具有上面列出的第一和第二属性)。

requiredDuringSchedulingIgnoredDuringExecution

  • 硬性条件必需满足

preferredDuringSchedulingIgnoredDuringExecution

  • 软性条件,属于偏好部署(优先匹配原则)
阅读全文 »

初识Envoy

作者: 小笼包
2020-05-20 晴

Envoy是什么

Envoy是一个七层负载均衡的代理,专门为现代大型服务方向架构设计。

简单来说Envoy是一种”服务网格”,为各种语言的应用程序提供通用的基础类库,例如:

服务发现、负载均衡、服务限流、断路器、可观测性(统计)、日志、链路追踪 等功能。

阅读全文 »