🧑‍🏫
liualexiang
  • Introduction
  • Azure
    • AKS Basic
    • AKS Spark
    • AZ ACR SYNC
    • Azure CMI SDWAN
    • Azure LB DeepDive
      • Azure LB DeepDive
    • Azure Service Principal Basic
    • Azure Internal VM Network Connectivity
      • Azure Internal VM Network Connectivity
    • Azure Cli Build
    • Azure Vm Memory Monitor
  • Blockchain
    • BTC
  • CRISPR
    • 使用Parallel_Cluster提升CRISPA效率
  • OpenSource
    • ElasticSearch
      • ES Get Started
      • ES Search Query
      • Kibana 可视化
      • Logstash配置
    • Ansible 基础
    • Infra As Code
      • Pulumi Get Started
      • Terraform Basic
    • ZooKeeper 基础
    • RPC与REST
    • 使用Python申请大量内存测试
    • 使用TPC_DS产生压测数据
    • Superset
      • Superset部署手册
    • 代码扫描
    • Git
      • Git Basic
      • Github Action Basic
      • Gitlab与AzureAD集成
      • Gitbook 基础教程
    • K8S
      • enter_node
      • K8s X509 Client Cert
      • K8s Basic
      • K8s Oidc
      • Docker 基础
      • helm基础
      • K8S_Secrets管理
      • 深入了解K8S
      • 混沌工程
      • Istio
      • 生态
      • CRD开发
      • k8s网络
    • Cloud_Custodian
    • Jenkins Basic
    • Nginx
    • ETCD
    • 正则
    • VictoriaMetrics
    • Kafka
  • MySQL
    • MySQL 调优
  • Linux
    • SSH Tunnel 上网
    • 内存管理
    • 在Linux系统中通过LUKS加密磁盘
    • 量子计算 Basic
    • IO多路复用
    • Iptables
    • tmux和screen
    • Systemd
    • OS 基础
    • jq基础
    • yum
    • neovim
  • Web
    • Html Css
    • Web部署
    • 缓存
  • Programming
    • 算法
      • 返回list中最大生序子序列长度
    • Python技巧
      • Python的语法糖
      • Python常用装饰器
      • AsyncIO基础
      • 自动化测试pytest
      • python中的下划线
      • 面向对象
      • Python的坑
      • Python配置文件管理
      • HTTP Stream Response
      • Python项目管理
    • 设计模式
      • 设计模式
      • 面向对象的思想
      • 编程概念
    • Go
      • Go 基础
      • Go常用功能
      • 结构体入门
    • 前端
    • Vue
    • NodeJS
  • Math
    • 多项式插值法
  • Security
    • HTTP常见攻击
    • 加密与签名
    • RSA
    • ECDSA
  • Solidity
    • Solidity基础
    • Blockchain Testnet Faucet
  • Tools
    • 视频处理ffmpeg
    • IDE配置
    • iTerm2美化
    • 密码管理
    • FRP配置
    • 工具集
由 GitBook 提供支持
在本页
  • KEDA
  • K8S Serverless Function
  • TriggerMesh
  • cilium
  • Rook
  • Kubeflow
  • Tekton
  • Flux
  • ArgoCD
  • Kustomize
  • Helm
  • Traefik
  • kong
  • Istio
  • KubeEdge
  • KubeSphere
  1. OpenSource
  2. K8S

生态

上一页Istio下一页CRD开发

最后更新于11个月前

KEDA

k8s 默认只支持CPU和内存扩容(一般用CPU扩容),如果想要用自定义指标扩容,比如ActiveMQ, SQS,AWS CloudWatch, RabbitMQ等,那么就可以用 KEDA这个插件

K8S Serverless Function

Knative

只能部署Docker,不能部署自己的代码。只是服务启动方式,由 k8s Deployment, Service 变成了Knative Service 当没有请求的时候,容器可以是0,从而节省资源,有http请求的时候,再启动容器。Knative是基于事件驱动的,支持多种。

OpenFaaS

支持在K8s里直接部署代码(像AWS Lambda那样部署python),也支持部署Docker。项目比较成熟,社区比较活跃。但是功能相对来说比较少。 OpenFaaS上手比较简单,容易部署 提供了内置UI访问,可以查看管理和调用函数

Fission

项目相对来说没有那么活跃,可以直接在K8S里部署代码,也可以部署Docker。 不提供官方UI,主要通过 fission cli管理,也有第三方UI

Apache OpenWhisk

可以直接部署代码,也可以部署Docker。适合多云环境,支持复杂的事件驱动,虽然部署比较麻烦,但功能比较多,在需要比较复杂的FaaS平台下表现比较好 提供UI功能。 IBM Cloud的Function就是基于OpenWhisk实现的托管平台。

对比

特性
OpenFaaS
Fission
Apache OpenWhisk

简单易用性

高

高

中

事件驱动支持

基本支持

强

强

编程语言支持

多种

多种

多种

Kubernetes 集成

强

强

强

定制化容器支持

强

中

强

部署和运维复杂度

中等

中等

高

状态管理

不支持

不支持

支持

开发体验

简单直接

快速部署

完整功能

社区和文档

活跃,丰富

活跃,较丰富

活跃,丰富

TriggerMesh

主要是解决跨平台的trigger。 比如kafka作为事件源,监听队列里事件,然后将 AWS Lambda作为第一个事件目标,处理kafka消息,GCP Storage作为第二个事件目标,存储处理结果,slack作为第三个目标,发送处理完通知。

cilium

基于ebpf用于提供网络和安全功能的高性能网络层

Rook

存储解决方案的云原生存储编排器,支持各种存储后端,如 Ceph 和 NFS

Kubeflow

k8s下的机器学习平台

Tekton

Tekton主要负责构建docker镜像,在pipeline里进行单元测试、集成测试等,确保代码质量的可靠性。Tekton主要是在k8s环境使用。但tekton的作用可以理解为跟github action差不多

Flux

一个GitOps工具,主要是监控仓库变化,自动部署到后端

ArgoCD

和Flux类似,监控仓库变化,自动部署到后端

Kustomize

可以理解为k8s部署的 deployment.yaml, service.yaml 等文件的manifest管理工具,kustomization.yaml 里可以声明性的管理kubernetes资源配置。通过 base 和overlay的概念,可以定义一个基础配置,然后再为开发、测试和生产环境创建不同的overlay。和Helm不同,Kustomize 不是作为打包用的。 使用kustomize,比较适合比较复杂的项目,有多个团队共同维护,如果手动直接管理deployment.yaml,会出现部署一致性的问题,使用 kustomize 能保持其一致性。以及,如果平时删除了 deployment.yaml,如果直接kubectl apply -f ./folder/的方式,不会删除部署文件,但使用kustomize 就会删除那个部署了。

Helm

k8s 部署文件的打包,可以将 deployment.yaml,service.yaml 等模版化,这样做好helm Chart,给其他人部署的时候可以自定义一些参数 helm 使用的是 go模板引擎来实现模板化, values.yaml文件定义了默认参数,可以在命令行里指定参数来覆盖默认值 支持版本控制和回滚,依赖管理(chart中定义其他chart的依赖)

Traefik

可以作为 ingress gateway,也可以作为API网关。支持反向代理,负载均衡,自动服务发现(支持 k8s, docker, consul, etcd等)。 支持动态配置,无需重启和手动敢于,实时感知和响应后端服务的变化。 支持身份认证,速率限制,重定向和压缩

kong

kong 和 traefik 可以视为竞品关系。Traefik 更注重动态服务发现和配置,适合快速变化的微服务环境。Kong强调的是API管理和扩展功能,适合需要丰富插件以及复杂的API管理环境。 kong的插件比较多,traefik中间件功能比较强大,但插件比较少。 所以看起来如果在k8s里跑,比较适合 traefik,如果是EC2上网关,kong更适合。

Istio

service mesh,一般在前端应用可以用,后端比较复杂,除非特别熟悉这个,否则出问题不好查。

KubeEdge

KubeSphere

是有青云科技开源的,支持 k8s 多租户管理,以及基于项目的隔离,配额管理,devops CICD Pipeline,日志管理,应用商店等。将一些企业级特性带到k8s里。

华为云开源的,目前看社区很活跃(2024年6月份),在B站每周都有社区。 kubeEdge主要是将边缘计算引入到k8s里。

事件源
weekly meeting