Ambassador

Ambassador responds with “no healthy upstream”

心已入冬 提交于 2021-01-28 08:04:34
问题 I have a simple k3s cluster with the Ambassador ingress controller installed as per the docs When I try to access the service through my browser, I just get a "no healthy upstream" message. These are my configs: $ kubectl describe svc web-test-service Name: web-test-service Namespace: default Labels: app=web-test Annotations: Selector: app=web-test Type: ClusterIP IP: 10.43.109.123 Port: <unset> 8080/TCP TargetPort: 8080/TCP Endpoints: 10.42.1.19:8080 Session Affinity: None Events: <none> $

如何理解这6种常见设计模式?

别等时光非礼了梦想. 提交于 2020-10-11 10:40:27
简介: 设计模式能够帮助我们优化代码结构,让代码更优雅灵活。有哪些常见的设计模式?如何合理运用?本文分享作者对工厂模式、单例模式、装饰模式、策略模式、代理模式和观察者模式的理解,介绍每种模式的模式结构、优缺点、适用场景、注意实现及代码实现。 一 前言 最近在改造一些历史的代码,发现一个很明显的特点,大部分代码是记叙文,按照事件的发展过程将故事平铺直叙的讲解出来。 这种方式的好处是比较符合人类的思维习惯,一条主线讲到底,代码阅读起来没有太大难度,只要顺着藤就能摸到瓜,但是缺点也很明显,一旦故事线中需要插入一些新的元素,比如:加入一个新的人物角色、新的时间线,都会需要大量更改故事线以配合这个新元素的融入,甚至对原有文章造成破坏性的影响。 为了解决这个问题,人们总结出了很多种文章结构,例如:总-分结构,并列结构,总-分-总结构等等,有了这些结构,在加入新元素的时候,甚至不必考虑新元素与原故事情节的关联性,直接单拉一个分支故事线独立去讲就好了,只要能够在整体故事结束前,与汇聚到主线故事就可以了(是不是很像git?)。 在软件开发领域,也有很多这样的非常有用的实践总结,我们称之为设计模式。对于设计模式,大家都不陌生,随便找个人,估计都能讲出N个设计模式来,但是除了这些设计模式的概念,很多人不知道如何灵活运用这些设计模式。所以借这篇文章和大家共同学习设计模式的思想。 二 理解设计模式

如何理解这6种常见设计模式?

不想你离开。 提交于 2020-09-30 06:01:24
一 前言 最近在改造一些历史的代码,发现一个很明显的特点,大部分代码是记叙文,按照事件的发展过程将故事平铺直叙的讲解出来。 这种方式的好处是比较符合人类的思维习惯,一条主线讲到底,代码阅读起来没有太大难度,只要顺着藤就能摸到瓜,但是缺点也很明显,一旦故事线中需要插入一些新的元素,比如:加入一个新的人物角色、新的时间线,都会需要大量更改故事线以配合这个新元素的融入,甚至对原有文章造成破坏性的影响。 为了解决这个问题,人们总结出了很多种文章结构,例如:总-分结构,并列结构,总-分-总结构等等,有了这些结构,在加入新元素的时候,甚至不必考虑新元素与原故事情节的关联性,直接单拉一个分支故事线独立去讲就好了,只要能够在整体故事结束前,与汇聚到主线故事就可以了(是不是很像git?)。 在软件开发领域,也有很多这样的非常有用的实践总结,我们称之为设计模式。对于设计模式,大家都不陌生,随便找个人,估计都能讲出N个设计模式来,但是除了这些设计模式的概念,很多人不知道如何灵活运用这些设计模式。所以借这篇文章和大家共同学习设计模式的思想。 二 理解设计模式 我尽量用最通俗易懂的示例和语言来讲述我理解的设计模式,希望能对大家有所帮助。 另外也无需精通所有的设计模式,只要能够融汇贯通常见的设计模式,就能让你的代码变得优雅。就像程咬金只会三板斧,但是熟练度无人能及,照样能横行天下。 1 工厂模式

设计模式之7个结构型模式

こ雲淡風輕ζ 提交于 2020-08-17 15:24:40
结构型模式概述 结构型模式(Structural Pattern) 描述 如何将类或者对象结合在一起形成更大的结构 ,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式概述 结构型模式可以分为 类结构型模式 和 对象结构型模式 类结构型模式关心类的组合 ,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。 对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。 根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是 对象结构型模式 。 适配器模式(Adapter) 桥接模式(Bridge) 组合模式(Composite) 装饰模式(Decorator) 外观模式(Facade) 享元模式(Flyweight) 代理模式(Proxy) 1适配器模式 把客户类的请求转化为对适配者的相应接口的调用 1.1 优点 将目标类和适配者类解耦 ,通过引入一个适配器类来重用现有的适配者类,而无须修改原有代码。 增加了类的透明性和复用性 ,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性。 灵活性和扩展性都非常好 ,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”

Service Mesh 和 API Gateway 关系深度探讨

半世苍凉 提交于 2020-04-30 11:42:32
前言 关于 Service Mesh 和 API Gateway 之间的关系,这个问题过去两年间经常被问起,社区也有不少文章和资料给出解答。其中不乏 Christian Posta 这样的网红给出过深度介绍。我在这里做一个资料的整理和汇总,结合个人的理解给出一些看法。另外在本文最后,介绍蚂蚁金服在 Service Mesh 和 API Gateway 融合的这个最新领域的一些开创性的实践和探索,希望给大家一个更有体感的认知。 备注1:为了节约篇幅,我们将直奔主题,假定读者对 Service Mesh 和 API Gateway 已有基本的了解。 备注2: 这边文章更关注于梳理整个脉络,内容不会展开的特别细,尤其是其他文章已经详细阐述的部分。如果您在浏览本文之后,还想更深入的了解细节,请继续阅读文章最后的参考资料和推荐阅读。 原本清晰的界限:定位和职责 首先,Service Mesh 和 API Gateway 在功能定位和承担的职责上有非常清晰的界限: Service Mesh:微服务的网络通信基础设施,负责(系统内部的)服务间的通讯; API Gateway: 负责将服务以 API 的形式暴露(给系统外部),以实现业务功能; 如上图所示: 从功能和职责上说: 位于最底层的是拆分好的原子微服务,以服务的形式提供各种能力; 在原子微服务上是(可选的)组合服务

斗胆推荐一款刚出的微服务网关

半城伤御伤魂 提交于 2020-04-23 05:54:49
前言 使用 API 网关作为内部服务面向客户端的单一入口,是一种普遍采用的架构模式。企业组织通过良好定义的 API 将内部系统向内部和外部用户公开,通常都会采用 API 网关来处理横向的关注点,包括访问控制、速率限制、负载均衡等等,来实现安全可控的 API 开放。而被广泛实践的微服务架构在提供高度灵活性和弹性的同时,也给 API 网关带来了更多的挑战。 阿里云云服务总线(Cloud Service Bus)新推出微服务网关服务(CSB Micro Gateway),针对微服务架构下 API 开放的特点,提供能与微服务环境的治理策略无缝衔接的网关服务,实现高效的微服务 API 开放。 API 网关的作用 API 网关典型作用 相信许多人都熟悉 API 网关的概念。作为内部服务面向客户端的单一入口,API 网关有两个最典型的作用: 1、内外解耦:对客户端屏蔽内部服务的动态多样化实现细节,如技术框架、拆分粒度、接口结构、实例状态等 2、切面控制:让内部服务能专注在业务逻辑上,集中处理横向的关注点,如路由、安全、限流、日志、监控等 API 网关使用类型 实际使用中,对应 API 网关所在位置和针对场景的不同,可分成两种类型: 1、企业级网关:位于企业组织的外围,面对外部的 API 消费者或服务提供者。通常将企业自身的数据和能力 API 化,对外开放,也有允许外部服务入驻的情况。总的来说

略谈分布式系统中的容器设计模式

☆樱花仙子☆ 提交于 2020-04-14 01:15:45
【今日推荐】:为什么一到面试就懵逼!>>> 本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言 :云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服务的事实标准。其中容器编排系统Kubernetes和容器是基石。所以每个工程师都需要学习和了解他们。学习过程中,很多工程师可能会问: 为什么Pod而不是容器是K8S部署的最小单位 ? 基于K8S设计分布式系统有没有什么套路 ?本文针对这些问题,并参考K8S创始人的很多文档,给出了解答。本文适合进行研发工作2到3年的同学,对架构设计比较感兴趣,有一定架构设计意识,同时对容器(Docker)和容器编排系统(kubernetes)有一定了解。希望可以通过此文,让同学们更深入的了解到分布式容器系统中的几种常见模式,以便以后更好的设计和实现云原生的分布式系统。 先从一篇论文说起 : 首先介绍一篇论文,标题是《Design patterns for container-based distributed systems》,作者是Brendan Burns和David Oppenheimer,论文发表于2016年,是原原生领域系统设计的代表作。 第一作者Brenda Burns,相信熟悉云原生领域的同学都认识他,他之前是Google的工程师

略谈分布式系统中的容器设计模式

倖福魔咒の 提交于 2020-04-13 03:11:12
本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言 :云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服务的事实标准。其中容器编排系统Kubernetes和容器是基石。所以每个工程师都需要学习和了解他们。学习过程中,很多工程师可能会问: 为什么Pod而不是容器是K8S部署的最小单位 ? 基于K8S设计分布式系统有没有什么套路 ?本文针对这些问题,并参考K8S创始人的很多文档,给出了解答。本文适合进行研发工作2到3年的同学,对架构设计比较感兴趣,有一定架构设计意识,同时对容器(Docker)和容器编排系统(kubernetes)有一定了解。希望可以通过此文,让同学们更深入的了解到分布式容器系统中的几种常见模式,以便以后更好的设计和实现云原生的分布式系统。 先从一篇论文说起 : 首先介绍一篇论文,标题是《Design patterns for container-based distributed systems》,作者是Brendan Burns和David Oppenheimer,论文发表于2016年,是原原生领域系统设计的代表作。 第一作者Brenda Burns,相信熟悉云原生领域的同学都认识他,他之前是Google的工程师,是Kubernetes的三位创始人之一

略谈分布式系统中的容器设计模式

混江龙づ霸主 提交于 2020-04-12 03:22:29
本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言 :云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服务的事实标准。其中容器编排系统Kubernetes和容器是基石。所以每个工程师都需要学习和了解他们。学习过程中,很多工程师可能会问: 为什么Pod而不是容器是K8S部署的最小单位 ? 基于K8S设计分布式系统有没有什么套路 ?本文针对这些问题,并参考K8S创始人的很多文档,给出了解答。本文适合进行研发工作2到3年的同学,对架构设计比较感兴趣,有一定架构设计意识,同时对容器(Docker)和容器编排系统(kubernetes)有一定了解。希望可以通过此文,让同学们更深入的了解到分布式容器系统中的几种常见模式,以便以后更好的设计和实现云原生的分布式系统。 先从一篇论文说起 : 首先介绍一篇论文,标题是《Design patterns for container-based distributed systems》,作者是Brendan Burns和David Oppenheimer,论文发表于2016年,是原原生领域系统设计的代表作。 第一作者Brenda Burns,相信熟悉云原生领域的同学都认识他,他之前是Google的工程师,是Kubernetes的三位创始人之一

略谈分布式系统中的容器设计模式

不想你离开。 提交于 2020-04-11 02:57:37
本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言 :云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服务的事实标准。其中容器编排系统Kubernetes和容器是基石。所以每个工程师都需要学习和了解他们。学习过程中,很多工程师可能会问: 为什么Pod而不是容器是K8S部署的最小单位 ? 基于K8S设计分布式系统有没有什么套路 ?本文针对这些问题,并参考K8S创始人的很多文档,给出了解答。本文适合进行研发工作2到3年的同学,对架构设计比较感兴趣,有一定架构设计意识,同时对容器(Docker)和容器编排系统(kubernetes)有一定了解。希望可以通过此文,让同学们更深入的了解到分布式容器系统中的几种常见模式,以便以后更好的设计和实现云原生的分布式系统。 先从一篇论文说起 : 首先介绍一篇论文,标题是《Design patterns for container-based distributed systems》,作者是Brendan Burns和David Oppenheimer,论文发表于2016年,是原原生领域系统设计的代表作。 第一作者Brenda Burns,相信熟悉云原生领域的同学都认识他,他之前是Google的工程师,是Kubernetes的三位创始人之一