CloudNative 架构

CloudNative|云原生应用架构|云原生架构|容器化架构|微服务架构|平台架构|基础架构


  • 首页

  • 标签

  • 分类

  • 归档

  • k8s离线安装包

  • 搜索

Kubernetes 网络插件在超过 10Gbit/s 下的基准测试结果

发表于 2020-11-11 | 分类于 kubernetes , 基准测试 , 网络 | | 热度: ℃
字数统计: 1,980 字 | 阅读时长 ≈ 8 分钟

概览

在运行 Kubernetes 1.19 和 Ubuntu 18.04 上进行基准测试

  1. 在我们深入讨论度量之前
  2. CNI 经过 MTU 调优
  3. CNI 基准:原始数据
  4. CNI 加密
  5. 总结
  6. 结论-我的结论

1 在我们深入讨论度量标准之前…

1.1 自2019年4月以来有什么新鲜事吗?

  • 测试您自己的群集:现在您可以使用我们发布的“Kubernetes网络基准测试”工具:knb (https://github.com/InfraBuilder/k8s-bench-suite)在自己的集群上运行基准测试。
  • 在CNI 竞争中欢迎新的挑战者:
    • 来自 VMware Tanzu 的 “Antrea”
    • 来自 alauda.io 的 “Kube-OVN”
  • 新场景:这个基准测试涵盖了 “Pod-to-Pod” 的网络性能,还包括一个新的 “Pod-to-Service” 场景,该方案涉及真实的测试案例。实际上,您的 API 容器将通过服务而不是容器 IP 消耗服务中的数据库(当然,我们对这两种场景也会测试 TCP 和 UDP)
  • 资源消耗:现在每个测试都有自己的资源比较。
  • 删除应用程序测试:我们不再运行 HTTP、FTP 和 SCP 测试。我们与社区和 CNI 维护者卓有成效的合作突显了 iperf TCP 结果和 curl 结果之间的差距,这是由于 CNI 启动的延迟(Pod 启动时的最初几秒钟,与实际用例无关)。
  • 开源:所有基准测试的源代码(脚本、cni yml 和原始结果)都可以在 github 上获得:https://github.com/icyxp/benchmark-k8s-cni-2020-08
    阅读全文 »

Nginx proxy_pass 配置域名引发的故障

发表于 2020-11-10 | 分类于 nginx , 反向代理 | | 热度: ℃
字数统计: 3,303 字 | 阅读时长 ≈ 15 分钟

背景描述

业务场景:

1
用户 ----> waf ----> 后端服务

waf 是采用 Nginx 做的二次开发,做了一些安全验证后将请求转发到后端服务,通过 nginx proxy_pass 转发。 proxy_pass 后面直接配置的是域名(如:xxxxx-1760550967.cn-northwest-1.elb.amazonaws.com.cn )

故障现象

有部分用户开始反馈访问站点出错 504 Gateway Time-out, 通过监控查到有部分请求打了一个下线的 IP 上。这里简单简述下故障场景:使用nginx做反向代理,将请求发送到一个域名(例如: proxy_pass http://www.test.com 该域名对应的 IP 是 A) ,刚开始运行一切正常,但是当运行了一段时间以后,域名对应的 IP 变了(例如 http://www.test.com 对应的 IP 由 A 变为 B),nginx 的转发仍然还在向原先的 IP 发送请求,导致业务中断,此时reload nginx 后才会重新恢复正常,且日志显示数据转发到新的 IP B。

阅读全文 »

简单直观的阐述 Kubernetes Istio

发表于 2020-11-09 | 分类于 kubernetes , istio | | 热度: ℃
字数统计: 2,161 字 | 阅读时长 ≈ 8 分钟

什么是 Istio?

Istio 是一个服务网格,它允许在集群中的 pods 和服务之间进行更详细、复杂和可观察的通信。

它通过使用 CRD 扩展 Kubernetes API 来进行管理。它将代理容器注入到所有 pods 中,然后由这些 pods 控制集群中的流量。

阅读全文 »

k8s ingress 在删除资源时 hang 住无法删除

发表于 2020-10-30 | 分类于 kubernetes , ingress , 问题 | | 热度: ℃
字数统计: 1,868 字 | 阅读时长 ≈ 9 分钟

背景

最近将 aws ALBIgressController 升级到 2.0 后发现在中国区有点问题,随后就将 alb-ingress-controller 回退到 1.x。具体 2.0 的问题已经解决,原因是中国区 aws 没有对应的 waf ,解决方法是将 waf 相关的配置关闭即可。当然,这不是重点,重点是当我回退到 1.x 后遇到了几个问题:

    1. kube-controller-manager 报如下错误日志
1
E1029 02:43:20.921678       1 reflector.go:153] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: the server could not find the requested resource
    1. k8s ingress 资源无法删除,hang 住了,查看对应的 ingress yaml 看到如下信息
1
2
3
4
5
6
7
...
creationTimestamp: "2020-10-28T10:22:42Z"
deletionGracePeriodSeconds: 0
deletionTimestamp: "2020-10-29T06:57:04Z"
finalizers:
- ingress.k8s.aws/resources
...
阅读全文 »

如何为 Kubernetes 实现原地升级

发表于 2020-10-28 | 分类于 kubernetes , 升级策略 | | 热度: ℃
字数统计: 3,098 字 | 阅读时长 ≈ 12 分钟

概念介绍

原地升级一词中,“升级”不难理解,是将应用实例的版本由旧版替换为新版。那么如何结合 Kubernetes 环境来理解“原地”呢?

我们先来看看 K8s 原生 workload 的发布方式。这里假设我们需要部署一个应用,包括 foo、bar 两个容器在 Pod 中。其中,foo 容器第一次部署时用的镜像版本是 v1,我们需要将其升级为 v2 版本镜像,该怎么做呢?

阅读全文 »
1…456…22
icyboy

icyboy

109 日志
98 分类
182 标签
RSS
GitHub 微博 知乎
友情链接
  • 张家港水蜜桃
  • 运维开发
  • DevOps
© 2016 — 2021 icyboy | Site words total count: 330.8k
本站访客数:
博客全站共330.8k字