当前位置:   article > 正文

学习kong官方文档

学习kong官方文档
  • 资料:官方文档
  • 开始时间:2024年5月17日10:21:57
  • 问题:了解kong gateway operator 是什么,有什么用,怎么进行开发修改

当然,我会用更简洁的方式重新解释这两个概念:

  1. Kong Gateway
    • 是什么:Kong是一个开源的API网关,用于管理和转发API请求。
    • 如何工作:它作为中间层,接收客户端的API请求,根据配置的路由规则转发到相应的后端服务。
    • 主要特性:包括请求路由、负载均衡、身份验证、限流、日志记录等。
  2. Kubernetes
    • 基本概念:Kubernetes是一个容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
    • 关键组件:包括Pods(容器组)、Services(服务,定义一组Pods的访问方式)、Deployments(部署,管理Pods的副本数量和更新策略)、ConfigMaps(配置管理)等。

Helm和Kubectl

Helm和Kubectl是Kubernetes生态系统中常用的两个工具,它们各自有不同的用途:

  1. Helm
    • 是什么:Helm是一个Kubernetes的包管理工具,类似于Linux系统中的apt或yum。
    • 如何工作:它允许你定义、安装和升级Kubernetes应用程序。使用Helm,你可以创建称为“charts”的包,这些包包含了运行一个Kubernetes应用程序所需的所有资源定义。
    • 主要用途:简化Kubernetes应用程序的部署和管理。
  2. Kubectl
    • 是什么:Kubectl是Kubernetes的命令行工具,用于与Kubernetes集群进行通信。
    • 如何工作:通过Kubectl,你可以运行命令来部署应用、检查和管理集群资源、查看日志等。
    • 主要用途:直接操作Kubernetes集群,管理集群中的各种资源。
      简而言之,Helm帮助你管理Kubernetes应用程序的部署,而Kubectl是一个用于与Kubernetes集群交互的通用命令行工具。

2024年5月17日10:45:48
开始看官方文档

强调的“ decentralized architectures, including hybrid-cloud and multi-cloud deployments”

真正的云服务应该是无处不在、高度灵活和弹性的,能够根据需求自动扩展和收缩,同时提供高可用性和容灾能力。传统的云服务可能只是将服务器从本地数据中心迁移到了云提供商的数据中心,但如果没有利用到云的这些特性,那么它仍然受到物理位置和资源的限制。
kong就做到了

  • Kong Gateway:Kong Gateway 最初是作为一个运行在 Nginx 中的 Lua 应用程序开发的。这意味着它的核心逻辑是用 Lua 编写的,并且运行在 Nginx web 服务器中,利用了 Nginx 的高性能和高稳定性。这个版本的 Kong 通常被称为“Kong Community Edition”。
  • Kong Gateway 的 Go 版本:后来,Kong 公司推出了一个完全用 Go 语言重写的 Kong Gateway 版本,这个版本被称为“Kong Enterprise Edition”。Go 语言版本的 Kong Gateway 旨在提供更高的性能和更好的可扩展性。
  • Kong Gateway Operator:Kong Gateway Operator 是一个用于在 Kubernetes 环境中部署和管理 Kong Gateway 的工具,它是用 Go 语言编写的。Operator 模式是 Kubernetes 的一种扩展机制,它允许用户自定义资源和管理复杂的应用程序。
    总结来说,Kong Gateway 有两个主要的版本:一个是基于 Nginx 和 Lua 的社区版,另一个是完全用 Go 语言编写的企业版。而 Kong Gateway Operator 是一个独立的工具,用于在 Kubernetes 上部署和管理这两个版本的 Kong Gateway,它是用 Go 语言编写的。

2024年5月17日16:23:37

ingress就是k8s里面的路由产品

声明式和命令式

在Kubernetes中,声明式配置(Declarative Configuration)是与其命令式配置(Imperative Configuration)相对的概念。这两种配置方式在应用程序和系统的管理中扮演不同的角色。

  1. 声明式配置
    • 定义:声明式配置意味着你定义了期望的状态,而Kubernetes负责确保系统达到并保持这个状态。
    • 特点:它强调配置的最终状态,而不是达到这个状态的具体步骤。你只需要指定你想要什么,Kubernetes会自动处理如何实现。
    • 示例:在Kubernetes中,使用YAML文件定义Deployment、Service等资源,并使用kubectl apply命令应用这些定义。Kubernetes会自动创建或更新资源以达到文件中定义的状态。
  2. 命令式配置
    • 定义:命令式配置涉及指定一系列的操作步骤,以手动控制系统的状态。
    • 特点:它强调的是操作的步骤和顺序,需要明确地告诉系统每一步要做什么。
    • 示例:在Kubernetes中,使用kubectl execkubectl port-forward等命令直接与Pods或服务交互,以手动执行特定的操作。
      总结来说,声明式配置更适合于自动化和大规模管理,因为它允许Kubernetes自动处理状态的变更和系统的维护。相反,命令式配置更适合于手动操作和细粒度的控制。在实际应用中,声明式配置是Kubernetes推荐的主要配置方式。

operator到底是个啥

在Kubernetes生态系统中,每个中间件或产品可以被视为一个应用程序,而Kubernetes本身则是一个全新的、高度自动化的系统生态。Operator模式类似于为这个生态开发适配版本的“应用程序”。

就像鸿蒙系统上的应用程序,这些应用程序是专门为鸿蒙系统设计的,以利用鸿蒙系统的特性和功能。类似地,Operator是为Kubernetes生态系统定制的,用于管理、部署和维护特定应用程序或服务的实例。
深入地解释Operator的工作原理,特别是如何与Kubernetes紧密集成,以及它们如何共同工作来管理应用程序:

  1. 自定义资源(CRDs)
    • 定义:CRDs是Kubernetes API的一部分,允许用户定义新的资源类型。这些资源可以被Kubernetes API服务器处理,就像内置资源一样。
    • 用途:通过CRDs,Operator定义了它管理的应用程序的实例。例如,一个MySQL Operator可能会定义一个MySQLInstances资源,用于表示一个MySQL数据库的实例。
  2. Operator控制器
    • 定义:Operator控制器是一个Go应用程序,它扩展了Kubernetes API,以提供对自定义资源的管理。
    • 工作原理:控制器监听它定义的CRDs,并根据这些资源的状态自动执行操作。例如,如果一个CRD资源表示一个数据库实例,控制器会负责部署数据库、配置它、监控其状态,并在必要时进行故障转移。
  3. 与Kubernetes API的集成
    • 定义:Kubernetes API是Kubernetes的核心组件,提供了一个RESTful接口来与集群交互。
    • 用途:Operator控制器通过Kubernetes API与Kubernetes集群通信。它使用API来创建、读取、更新和删除资源,以及监控资源的状态。
  4. 声明式配置
    • 定义:声明式配置是Kubernetes的一个核心概念,它允许用户定义他们希望系统达到的状态。
    • 用途:Operator使用声明式配置来定义应用程序的期望状态。用户通过定义CRDs来指定应用程序的状态,而Operator负责确保系统达到并维持这个状态。
  5. 自动化管理
    • 定义:自动化管理是Kubernetes的核心优势之一,它允许系统自动处理许多管理任务。
    • 用途:Operator利用Kubernetes的自动化能力来管理应用程序的整个生命周期。它自动创建、更新和删除资源,以及监控和维护应用程序的状态。
  6. 扩展性
    • 定义:扩展性是Kubernetes的一个关键特性,它允许用户轻松地添加新的功能和集成。
    • 用途:Operator通过定义CRDs和控制器来扩展Kubernetes的功能。它允许用户在Kubernetes上运行和维护复杂应用程序,而无需手动操作。

Kong Gateway Operator 与 Kong Ingress Controller 以不同的方式协调 Gateway 资源。KGO的方法称为托管网关,而KIC的方法称为非托管网关。

Kong Gateway Operator(KGO)和Kong Ingress Controller(KIC)在协调和管理Kong Gateway资源方面采用了不同的方法。这两种方法反映了不同的设计哲学和应用场景:

  1. Kong Gateway Operator (KGO)
    • 托管网关:KGO采用托管网关的方法,这意味着Kong Gateway的资源(如Deployment、Service等)是由Operator管理的。
    • 自动化和声明式配置:KGO通过Kubernetes的CRD和控制器来管理Kong Gateway的整个生命周期,包括部署、更新、扩展和监控。
    • 易于管理:KGO简化了Kong Gateway的部署和管理,因为它处理了与Kubernetes集成的细节。
  2. Kong Ingress Controller (KIC)
    • 非托管网关:KIC采用非托管网关的方法,这意味着Kong Gateway的资源仍然由用户直接管理。
    • 灵活性:用户可以自由地选择如何部署和管理Kong Gateway资源,这提供了更大的灵活性。
    • 自定义配置:用户可以更精细地控制Kong Gateway的配置,以满足特定的需求。
      这两种方法都有其优点和适用场景。托管网关方法(如KGO)更适合那些希望简化Kong Gateway在Kubernetes上的部署和管理的用户。非托管网关方法(如KIC)则更适合那些需要更精细控制和自定义配置的用户。
      在选择适合你的方法时,你需要考虑你的具体需求和偏好,以及你希望如何管理Kong Gateway在Kubernetes上的部署。

Day-2 Operations

"Day-2 Operations"这个术语中的“Day-2”并不是指具体的第二天,而是用于区分软件开发和运维的不同阶段。这里的“Day-1”和“Day-2”是比喻性的表达:

  1. Day-1 Operations
    • 定义:在软件开发和部署的“Day-1”,重点是实现和部署应用程序。
    • 重点:这通常包括开发、测试和将应用程序首次部署到生产环境。
    • 活动:编写代码、构建应用程序、执行测试、部署到生产环境等。
  2. Day-2 Operations
    • 定义:在“Day-2”,重点转向了应用程序的运维和管理。
    • 重点:这包括确保应用程序在生产环境中的稳定运行、性能优化、安全性和维护。
    • 活动:监控、故障排除、性能优化、安全性增强、数据备份和恢复、合规性检查等。
      因此,“Day-2 Operations”并不是指第二天的操作,而是指在应用程序成功部署上线后的运维和管理阶段。这个术语强调了软件开发和运维的连续性和不同阶段的重心转移。
      “Day-2 Operations”(运维阶段)与CI/CD(持续集成/持续部署)在软件开发和运维过程中有相似之处,但它们关注的是不同的阶段和活动。
  3. Day-2 Operations
    • 定义:Day-2 Operations通常指的是应用程序部署上线后的运维和管理阶段。
    • 重点:这个阶段关注的是如何确保应用程序在生产环境中的稳定运行、性能优化、安全性和维护。
    • 活动:包括监控、故障排除、性能优化、安全性增强、数据备份和恢复、合规性检查等。
  4. CI/CD
    • 定义:CI/CD是软件开发过程中的两个关键环节,分别指的是持续集成和持续部署。
    • 重点:这两个环节侧重于如何快速、可靠地从代码开发到最终产品部署的整个过程。
    • 活动:包括代码编写、代码提交、自动构建、自动化测试、部署到生产环境等。
      尽管它们关注的阶段和活动不同,但Day-2 Operations和CI/CD都是现代软件开发和运维中不可或缺的部分。Day-2 Operations确保应用程序在生产环境中稳定运行,而CI/CD则加速了从开发到部署的流程。两者结合使用,可以显著提高软件开发和运维的效率和质量。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/588807
推荐阅读
相关标签
  

闽ICP备14008679号