作者阳明来源k8s技术圈(ID:kube100)前面我们介绍了使用Zadig交付一个非常简单的应用示例,接下来我们来介绍下微服务项目如何在Zadig下进行交付。微服务示例我们这里使用到开源项目是https:github.comGoogleCloudPlatformmicroservicesdemo,该开源项目名叫OnlineBoutique(https:onlineboutique.dev),是一个云原生微服务演示应用程序,其中包含11个微服务,该应用程序是一个基于Web的电子商务应用程序,用户可以在其中浏览商...
2022-09-06 12:01:39 5749浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)TektoncdOperator是一个Kubernetes的扩展,用于在Kubernetes集群上安装、升级和管理TektonCDPipelines、Dashboard、Triggers等。我们只需要编写各个组件的yaml就可以直接来管理Tekton的各种组件。安装安装TektoncdOperator有多种方式。从OperatorHub安装可以直接前往OperatorHub页面https:operatorhub.iooperatortektoncdoperator进行安装,其生命周期将由OperatorLifecycleManager(OLM)进...
2022-09-06 12:01:13 5902浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)前面我们讲解了使用Jenkins流水线来实现Kubernetes应用的CICD,现在我们来将这个流水线迁移到Tekton上面来,其实整体思路都是一样的,就是把要整个工作流划分成不同的任务来执行,前面工作流的阶段划分了以下几个阶段:Clone代码单元测试编译打包Docker镜像构建推送KubectlHelm部署服务。在Tekton中我们就可以将这些阶段直接转换成Task任务,Clone代码在Tekton中不需要我们主动定义一个任...
2022-08-25 11:27:13 5490浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)Crossplane是一个开源的Kubernetes插件,通过扩展KubernetesAPI来解决云资源的供应问题。使用Crossplane时,你可以用声明的方式定义需要创建哪些云资源才能让你的应用程序正常工作,不需要编写任何代码。可以直接通过创建相关的CRD对象来完成这些云资源的定义,可以看成是一个云原生版本的Terraform。VCluster是一个通过轻量级虚拟Kubernetes集群提供灵活性并节省成本的工具,使用VCluster...
2022-08-25 11:26:56 5009浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)本文我们将学习如何使用KubernetesClusterAPI和ArgoCD创建和管理多个Kubernetes集群。我们将使用Kind创建一个本地集群,在该集群上,我们将配置其他Kubernetes集群的创建过程。为了自动执行该过程,我们将使用ArgoCD,我们可以从单个Git存储库处理整个过程。介绍你听说过一个名为KubernetesClusterAPI(https:clusterapi.sigs.k8s.io)的项目吗?它提供声明式API和工具来简化配置、升级和管...
2022-08-25 11:26:43 7043浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)ArgoCD是一个为Kubernetes而生的,遵循声明式GitOps理念的持续部署工具。ArgoCD可在Git存储库更改时自动同步和部署应用程序。ArgoCD遵循GitOps模式,使用Git仓库作为定义所需应用程序状态的真实来源,ArgoCD支持多种Kubernetes清单:kustomizehelmchartsksonnetapplicationsjsonnetfilesPlaindirectoryofYAMLjsonmanifestsAnycustomconfigmanagementtoolconfiguredasaconfigmanagementplug...
2022-08-25 11:26:28 8105浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)Tekton结合ArgoCD前面我们使用Tekton完成了应用的CICD流程,但是CD是在Tekton的任务中去完成的,现在我们使用GitOps的方式来改造我们的流水线,将CD部分使用ArgoCD来完成。这里我们要先去回顾下前面的Tekton实战部分的内容,整个流水线包括clone、test、build、docker、deploy、rollback几个部分的任务,最后的deploy和rollback属于CD部分,我们只需要这部分使用ArgoCD来构建即可。首先我...
2022-08-25 11:26:13 7531浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)GitOps的核心理念就是一切皆代码,意味着用户名、密码、证书、token等敏感信息也要存储到Git仓库中,这显然是非常不安全的,不过我们可以通过Vault、Keycloak、SOPS等Secret管理工具来解决,最简单的方式是使用SOPS,因为它可以使用PGP密钥来加密内容,如果你使用kustomize则还可以在集群内使用相同的PGP密钥解密Secret。ArgoCD虽然没有内置的Secret管理,但是却可以与任何Secret管理工具...
2022-08-25 11:25:49 7742浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)Linkerd是Kubernetes的一个完全开源的服务网格实现。它通过为你提供运行时调试、可观测性、可靠性和安全性,使运行服务更轻松、更安全,所有这些都不需要对你的代码进行任何更改。Linkerd通过在每个服务实例旁边安装一组超轻、透明的代理来工作。这些代理会自动处理进出服务的所有流量。由于它们是透明的,这些代理充当高度仪表化的进程外网络堆栈,向控制平面发送遥测数据并从控制平面接...
2022-08-25 11:25:36 5202浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)ArgoRollouts是一个KubernetesOperator实现,它为Kubernetes提供更加高级的部署能力,如蓝绿、金丝雀、金丝雀分析、实验和渐进式交付功能,为云原生应用和服务实现自动化、基于GitOps的逐步交付。支持如下特性:蓝绿更新策略金丝雀更新策略更加细粒度、加权流量拆分自动回滚手动判断可定制的指标查询和业务KPI分析Ingress控制器集成:NGINX,ALB服务网格集成:Istio,Linkerd,SMIMetrics...
2022-08-25 11:25:13 4894浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)DashboardArgoRolloutsKubectl插件可以提供一个本地Dashboard,来可视化你的Rollouts。要启动这个Dashboard,需要在包含Rollouts资源对象的命名空间中运行kubectlargorolloutsdashboard命令,然后访问localhost:3100即可。点击Rollout可以进行详细页面,在详细页面可以看到Rollout的配置信息,还可以直接在UI界面上执行一些常用的操作,比如重启、重启、中断等。Analysis和渐进式交互ArgoR...
2022-08-25 11:24:46 5485浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)我们知道Prometheus采用的pull模式,但是某些网络场景下面(比如不在一个子网或者防火墙),Prometheus无法直接拉取监控指标数据,这个时候我们可能就需要一种能够主动push的模式了。而Pushgateway就是Prometheus生态中来解决这个问题的一个工具。但是Pushgateway也不是万能的,其本身也存在一些弊端:将多个节点数据汇总到pushgateway,如果pushgateway挂了,受影响范围更大Prometheus拉取...
2022-07-26 17:50:39 1.1w浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)TraefikHub是一个云原生网络平台,可帮助你即时在边缘发布、保护和扩展容器。它提供了从用户到容器的端到端连接以及进入每个服务的网关。它是用于在分布式系统中连接多个集群的统一解决方案,它通过一个简单易用的仪表板整合了网络堆栈的多个层。TraefikHub是一种开箱即用的解决方案,易于学习,甚至更易于实施,开发团队只需单击一下即可将应用程序发布到Internet,并自动配置重要的安全...
2022-07-26 17:50:26 5389浏览 0点赞 0回复 0收藏
DevStream是一个开源的DevOps工具链管理器,将主流DevOps全生命周期的开源工具管理起来,提供了包括安装部署、最佳实践配置等功能,因开发者而生,由开发者开发,为开发者服务。想象你正在开始一个新的项目或组建一个新的团队。在写第一行代码之前,你需要一个能够高效运转SDLC(软件开发生命周期)和承载开发至部署全过程的工具。通常情况下,你需要以下几个部分来高效地工作。项目管理软件或issue追溯工具(JIRA等)源代码管理...
2022-07-26 17:49:45 5670浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)Loki由多个微服务组件构建而成,可以作为一个可水平扩展的分布式系统运行,Loki的独特设计可以将整个分布式系统的代码编译成单个二进制或Docker映像,单个二进制文件的行为由target命令行标志控制。单体模式最简单的操作模式是设置targetall,这是默认的方式,不需要指定,这就是单体模式,它以单个二进制文件或Docker映像的形式在单个进程中运行Loki的所有微服务组件。单体模式对于快速开...
2022-07-26 17:49:24 9151浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)前面我们提到了Loki部署的单体模式和读写分离两种模式,当你的每天日志规模超过了TB的量级,那么可能我们就需要使用到微服务模式来部署Loki了。微服务部署模式将Loki的组件实例化为不同的进程,每个进程都被调用并指定其目标,每个组件都会产生一个用于内部请求的gRPC服务器和一个用于外部API请求的HTTP服务。ingesterdistributorqueryfrontendqueryschedulerquerierindexgatewayrulercomp...
2022-07-26 17:48:53 1.1w浏览 0点赞 0回复 1收藏
作者阳明来源k8s技术圈(ID:kube100)对于生产环境以及一个有追求的运维人员来说,哪怕是毫秒级别的宕机也是不能容忍的。对基础设施及应用进行适当的日志记录和监控非常有助于解决问题,还可以帮助优化成本和资源,以及帮助检测以后可能会发生的一些问题。前面我们学习使用了Prometheus来进行监控报警,但是如果我们使用Loki收集日志是否可以根据采集的日志来进行报警呢?答案是肯定的,而且有两种方式可以来实现:Promtail中...
2022-07-26 17:48:22 7692浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)Zadig是KodeRover公司基于Kubernetes自主设计、研发的开源分布式持续交付产品,具备灵活易用的高并发工作流、面向开发者的云原生环境、高效协同的测试管理、强大免运维的模板库、客观精确的效能洞察以及云原生IDE插件等重要特性,为工程师提供统一的协作平面。Zadig内置了K8sYAML、HelmChart、主机等复杂场景最佳实践,适用大规模微服务、高频高质量交付等场景。核心概念在使用Zadig之前我...
2022-07-26 17:48:05 7835浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)vmagent可以帮助我们从各种来源收集指标并将它们存储在VM或者任何其他支持remotewrite协议的Prometheus兼容的存储系统中。特性vmagent相比于Prometheus抓取指标来说具有更多的灵活性,比如除了拉取(pull)指标还可以推送(push)指标,此外还有很多其他特性:可以替换prometheus的scrapingtarget支持从Kafka读写数据支持基于prometheusrelabeling的模式添加、移除、修改labels,可以在数据发...
2022-06-22 17:30:13 7266浏览 0点赞 0回复 0收藏
作者阳明来源k8s技术圈(ID:kube100)昨天网络环境出了点问题,本地的虚拟机搭建的Kubernetes环境没有固定IP,结果节点IP变了,当然最简单的方式是将节点重新固定回之前的IP地址,但是自己头铁想去修改下集群的IP地址,结果一路下来踩了好多坑,压根就没那么简单环境首先看下之前的环境:➜catetchosts192.168.0.111master1192.168.0.109node1192.168.0.110node2新的IP地址:➜catetchosts192.168.0.106master1192.168.0.101no...
2022-06-22 17:28:13 9023浏览 0点赞 0回复 0收藏