Flux项目原本提供了一个WebUI来管理Flux集群,但该项目已经存档,FluxCD组织不再开发,所以我们这里不再介绍了,如果你想使用WebUI来管理Flux集群,可以使用Weaveworks提供的weavegitops(https:github.comweaveworksweavegitops)项目,该下面为Flux提供了一个免费的开源GUI。weavegitopsWeaveGitOps改善了开发人员体验,简化了在Kubernetes上部署和管理云原生应用程序的复杂性和认知负担,使团队可以更快地开展工作,它...
2023-11-24 11:40:00 1875浏览 0点赞 0回复 0收藏
前面我们在使用Flux进行Gitops实践的过程中,我们每次都需要在CI流水线去手动更新Git代码仓库中的Values文件的镜像版本,这样就会比较麻烦,和ArgoCD类似,Flux也提供了一个ImageAutomation控制器的功能。原理当新的容器镜像可用时,imagereflectorcontroller和imageautomationcontroller可以协同工作来更新Git存储库。imagereflectorcontroller扫描镜像存储库并反射到Kubernetes资源中的镜...
2023-11-24 11:33:56 2507浏览 0点赞 0回复 0收藏
Flux是一套针对Kubernetes的持续交付和渐进式交付的解决方案,可以让我们以GitOps的方式轻松地交付应用。和另一个同类的CNCF孵化项目ArgoCD不同,FluxCD是许多工具集的集合,天然松耦合并且有良好的扩展性,用户可按需取用。最新版本的Flux引入了许多新功能,使其更加灵活多样。Flux已经是CNCF毕业项目。组件Flux是使用GitOpsToolkit组件构建的,它是一组:专用工具和Flux控制器可组合的API在fluxcdGitHub组织下,为构建基于Kub...
2023-11-24 11:33:30 1864浏览 0点赞 0回复 0收藏
架构下面展示了由ArgoRollouts管理的Deployment的所有组件。RolloutController这是主控制器,用于监视集群的事件并在Rollout类型的资源发生更改时做出反应。控制器将读取rollout的所有详细信息,并使集群处于rollout定义中描述的相同状态。请注意,ArgoRollouts不会篡改或响应正常Deployment资源上发生的任何变更,这意味着你可以在一个使用其他方法部署应用的集群中安装ArgoRollouts。Rollout资源Rollout资源是ArgoRollouts引...
2023-11-24 11:27:48 1936浏览 0点赞 0回复 0收藏
金丝雀发布接下来我们通过几个简单的示例来说明Rollout的部署、升级、发布和中断等操作,以此来展示Rollouts的各种功能。1.部署Rollout首先我们部署一个Rollout资源和一个针对该资源的KubernetesService对象,这里我们示例中的Rollout采用了金丝雀的更新策略,将20%的流量发送到金丝雀上,然后手动发布,最后在升级的剩余时间内逐渐自动增大流量,可以通过如下所示的Rollout来描述这个策略:basicrollout.yamlapiVersion:argopr...
2023-11-24 11:27:20 2873浏览 0点赞 0回复 0收藏
ArgoRollouts是一个KubernetesOperator实现,它为Kubernetes提供更加高级的部署能力,如蓝绿、金丝雀、金丝雀分析、实验和渐进式交付功能,为云原生应用和服务实现自动化、基于GitOps的逐步交付。支持如下特性:蓝绿更新策略金丝雀更新策略更加细粒度、加权流量拆分自动回滚手动判断可定制的指标查询和业务KPI分析Ingress控制器集成:NGINX,ALB服务网格集成:Istio,Linkerd,SMIMetrics指标集成:Prometheus、Wavefront、Kaye...
2023-11-23 14:34:42 1599浏览 0点赞 0回复 0收藏
部署应用由于上面我们在创建应用的时候使用的同步策略为Manual,所以应用创建完成后没有自动部署,需要我们手动去部署应用。同样可以通过CLI和UI界面两种同步方式。使用CLI同步应用创建完成后,我们可以通过如下所示命令查看其状态:$argocdappgetargocdguestbookName:argocdguestbookProject:defaultServer:https:kubernetes.default.svcNamespace:defaultURL:https:grpc.argocd.k8s.localapplicationsguestbookRepo:h...
2023-11-23 14:34:20 3095浏览 0点赞 0回复 0收藏
ArgoCD是一个为Kubernetes而生的,遵循声明式GitOps理念的持续部署工具。ArgoCD可在Git存储库更改时自动同步和部署应用程序。ArgoCD遵循GitOps模式,使用Git仓库作为定义所需应用程序状态的真实来源,ArgoCD支持多种Kubernetes清单:kustomizehelmchartsksonnetapplicationsjsonnetfilesPlaindirectoryofYAMLjsonmanifestsAnycustomconfigmanagementtoolconfiguredasaconfigmanagementpluginArgoCD可在指定的目标环境中自动部署...
2023-11-23 14:33:54 3175浏览 0点赞 0回复 0收藏
Agent节点虽然我们上面提到了动态节点的好处,但是还是会有一部分人比较喜欢坚持静态节点的方式,选择静态或者动态的JenkinsAgent节点都是可以的。接下来我们就分别来介绍下如何在Kubernetes集群中为Jenkins提供动静态Agent节点。静态节点首先在Jenkins页面http:jenkins.k8s.localcomputernew新建一个节点:点击创建后配置节点信息,然后点击保存:保存后我们可以看到节点已经创建成功了:然后点击列表中的agent1名称,...
2023-11-23 14:33:29 5235浏览 0点赞 0回复 0收藏
提到基于Kubernetes的CICD,可以使用的工具有很多,比如Jenkins、GitlabCI、Drone之类的,我们这里会使用大家最为熟悉的Jenkins来做CICD的工具。安装既然要基于Kubernetes来做CICD,我们这里最好还是将Jenkins安装到Kubernetes集群当中,安装的方式也很多,我们这里仍然还是使用手动的方式,这样可以了解更多细节,对应的资源清单文件如下所示:jenkins.yamlapiVersion:v1kind:PersistentVolumemetadata:name:jenkinslocallabel...
2023-11-23 14:33:07 2443浏览 0点赞 0回复 0收藏
OpenTelemetryCollector部署模式策略OpenTelemetry收集器可以通过不同的方式进行部署,所以我们要考虑下如何部署它。具体选择哪种策略取决于你的团队和组织情况。Agent模式在这种情况下,OpenTelemetry检测的应用程序将数据发送到与应用程序一起驻留的(收集器)代理。然后,该代理程序将接管并处理所有来自应用程序的追踪数据。收集器可以通过sidecar方式部署为代理,sidecar可以配置为直接将数据发送到存储后端。Gateway模式...
2023-11-23 14:21:20 3756浏览 0点赞 0回复 0收藏
这篇文章旨在让您对OpenTelemetry有基本的了解。将涵盖的主题有:分布式追踪OpenTelemetry是什么?OpenTelemetry检测(自动和手动)OpenTelemetry协议(OTLP)OpenTelemetryCollectorsOpenTelemetryCollectors部署模式OpenTelemetry后端OpenTelemetryonKubernetesOpenTelemetryOperatorOpenTelemetry示例应用程序在本文结束时,您将了解如何使用OpenTelemetryOperator在应用程序中实现跟踪,而无需更改任何代码。分布式追踪让我...
2023-11-23 14:20:47 2221浏览 0点赞 0回复 0收藏
安装SigNoz下面我们准备使用SigNoz来作为OTLP接收器。SigNoz是一个开源APM,它可以帮助开发人员监控他们的应用程序并解决问题,是DataDog、NewRelic等的开源替代品。开源应用程序性能监控(APM)和可观察性工具。要使用SigNoz自然我们需要首先安装,同样我们可以使用HelmChart来部署SigNoz:$helmrepoaddsignozhttps:charts.signoz.io配置一个全局的StorageClass对象$helmupgradeinstallsignozsignozsignozsetglobal.storageClass...
2023-11-23 14:20:20 2558浏览 0点赞 0回复 0收藏
OpenTelemetryOperator是一个用于部署和管理OpenTelemetry组件的KubernetesOperator。它是一个自定义的Kubernetes控制器,使用Operator模式自动化了OpenTelemetry环境的部署、配置和管理过程。OpenTelemetryOperator简化了在Kubernetes环境中部署和管理OpenTelemetryCollector、OpenTelemetryAgent等组件的流程。它可以通过CRD对OpenTelemetry组件进行集中化的管理。使用OpenTelemetryOperator,可以轻松地在Kubernetes...
2023-11-23 14:02:46 2151浏览 0点赞 0回复 0收藏
我们知道对于Java应用可以通过OpenTelemetry提供的Javaagent来实现自动埋点功能,在大多数场景下也完全足够了,但是有时候我们需要更加精细的控制,这时候我们就需要使用手动埋点的方式来实现了。使用注解埋点我们可以在Java应用通过手动埋点的方式来实现链路追踪,但如果我们不希望进行太多的代码更改,那么可以使用注解的方式来实现,OpenTelemetry提供了一些注解来帮助我们实现手动埋点,比如WithSpan、SpanAt...
2023-11-23 13:59:08 4277浏览 0点赞 0回复 0收藏
前面我们介绍了如何通过OpenTelemetryCollector来收集Kubernetes集群的指标数据,接下来我们再来了解下如何收集集群的日志记录数据。安装Loki首先我们需要部署Loki来收集日志数据,同样我们这里使用HelmChart来快速部署,不过需要注意同样不需要部署任何日志采集器,因为我们将使用OpenTelemetryCollector来收集日志数据,然后再将其发送到Loki中。$helmrepoaddgrafanahttps:grafana.github.iohelmchart$helmrepoupdate...
2023-11-22 14:58:14 2587浏览 0点赞 0回复 0收藏
batch处理器批处理器接受追踪、指标或日志,并将它们分批处理。批处理有助于更好地压缩数据,并减少传输数据所需的外部连接数量。该处理器支持基于大小和时间的批处理。强烈建议在每个采集器上配置批处理器。批处理器应该在内存限制器(memorylimiter)以及任何其他采样处理器之后的管道中定义。这是因为批处理应该在任何数据采样之后再发生。批处理器中可以配置如下所示的一些参数:sendbatchsize(默认值81...
2023-11-22 14:57:49 2675浏览 1点赞 0回复 0收藏
Kubernetes已成为一个被广泛采用的行业工具,对可观测性工具的需求也在不断增加。为此,OpenTelemetry创建了许多不同的工具,来帮助Kubernetes用户观察他们的集群和服务。接下来我们将开始使用OpenTelemetry监控Kubernetes集群,将专注于收集Kubernetes集群、节点、pod和容器的指标和日志,并使集群能够支持发出OTLP数据的服务。Kubernetes以多种不同的方式暴露了许多重要的遥测数据。它具有用于许多不同对象的日志、事件和指标...
2023-11-22 14:57:03 3208浏览 1点赞 0回复 0收藏
GrafanaMimir是GrafanaLabs开发的一个AGPLv3许可的开源软件项目,与对象存储结合使用时,可为Prometheus指标提供可扩展的长期存储。Mimir使用基于微服务的可水平扩展的架构构建。每个微服务被称为一个组件,Mimir作为由这些组件组成的单个二进制文件运行。大多数组件都是无状态的,不需要在重新启动之间保留任何数据。这里我们结合MinIO来使用GrafanaMimir。Mimir特性当您将Mimir和MinIO结合起来时,您将生成...
2023-11-22 14:56:10 2815浏览 0点赞 0回复 0收藏
关键要点API网关已从基本的转换器发展为适应市场需求的高级云网关,在管理和保护客户端与后端服务之间的API通信中发挥着关键作用。尽管开源的KubernetesGatewayAPI项目将API网关定位为基础设施中必不可少但可商业化的一部分,但全周期的API管理在推动云原生应用和服务方面仍然至关重要。为了充分发挥云原生计算的潜力,传统的API管理架构必须重新设计,以不仅满足Kubernetes和云原生环境的要求,而且还要充分利用它们提供的功能...
2023-11-22 14:54:52 1947浏览 0点赞 0回复 0收藏